No sweet without sweat

[Machine Learning] - 미스터리사인 본문

Machine Learning

[Machine Learning] - 미스터리사인

Remi 2022. 9. 1. 00:18
728x90
반응형

문제 1.

1) 22 ? 7 = 37

2) 큰수 + 두 수의차

3) 22+(22-7)

먼저 dataframe을 이용할꺼라 pandas 라이브러리를 가져와야 합니다.

import pandas as pd

1. 문제와 정답 만들기

1) 문제와 정답을 담을 리스트 만들기

list1=[]

2) 1부터 199까지 동작하는 for문 만들기 (변수a)

for a in range(1,200):

3) 1부터 199까지 동작하는 for문 만들기 (변수b)

for b in range(1,200):

4) 규칙을 통해 a와 b를 연산한 결과 만들기 (변수result)

if a > b: result = a +(a-b) else: result = b +(b-a)

5) 리스트에 문제(a,b)와 정답(result) 담기

list1.append([a,b,result])

 

한눈에 :

6) list1을 Dataframe으로 만들고 컬럼이름을 A, B, Result로 구성

- DataFrame(자료, columns =[])

data=pd.DataFrame(list1, columns = ["A","B","result"])

* 데이터 확인 :

7) 데이터를 문제와 정답으로 분리

- 문제 :X(대문자)

- 정답 :y(소문자)

X = data.loc[:, ["A","B"]] y= data.loc[:, "result"]

* X데이터 :

* y데이터 :

2. 머신러닝 모델에 학습시키기

from sklearn.ensemble import RandomForestRegressor random_forest = RandomForestRegressor()

import를 해오시고 Regressor는 회귀이며 정답이없는 값을 구할때 사용됩니다.

모델에 학습시키기 위해서는 fit(문제데이터, 정답데이터)를 이용합니다.

random_forest.fit(X,y)

잘 학습이 됐다면 다음과 같은 출력 값이 나옵니다

3. 머신러닝 모델이 규칙을 찾았는지 확인

Q2

- (큰수/작은수)의 나머지

- 4 ? 19 = 3

list2=[] for a in range(1,200): for b in range(1, 200): if a>b: result = a%b else: reulst = b%a list2.append([a,b,result])
data2=pd.DataFrame(list2, columns=["a","b","result"])
X= data2.loc[:,["a","b"]] y = data2.loc[:,"result"]

이처럼 인덱스를 이용할때 ㅣoc를 이용해도 되고 iloc를 사용할 수 있습니다.

iloc는 숫자로 인덱스로 사용하며 loc는 '값을 인덱스로 사용합니다.

from sklearn.ensemble import RandomForestRegressor random_forest = RandomForestRegressor() random_forest.fit(X,y)

random_forest.predict([[15,5]])

여기 predict값에 숫자를 입력해도되며 훈련값을 입력해도 됩니다.(EX) X_train)

random_forest.predict(X_train)

(x_test는 안됩니다.)

728x90
반응형
Comments