37번째 줄: |
37번째 줄: |
| from sklearn.enssemble import RandomForestClassifier | | from sklearn.enssemble import RandomForestClassifier |
| | | |
− | machine = RandomForestClassifier(random_state=13) # 객체 지정 | + | machine = RandomForestClassifier(max_leaf_nodes=500, random_state=13) # 객체 지정 |
| machine.fit(data, label) # 데이터와 레이블 지정하여 학습 실행. | | machine.fit(data, label) # 데이터와 레이블 지정하여 학습 실행. |
| </syntaxhighlight>machine에 대해 다양한 파라미터가 있는데, 이는 상황에 따라 활용. | | </syntaxhighlight>machine에 대해 다양한 파라미터가 있는데, 이는 상황에 따라 활용. |
| + | {| class="wikitable" |
| + | !파라미터 |
| + | !설명 |
| + | |- |
| + | |max_leaf_nodes |
| + | |노드를 만드는 제한은 몇으로 할 것인지.(과적합 방지) |
| + | |- |
| + | |random_state |
| + | |자료들을 섞을 때 random함수에 동일한 seed를 주어 매번 똑같은 결과를 얻게 하기 위함.(검증용) |
| + | |} |
| |- | | |- |
| |예측 | | |예측 |
46번째 줄: |
56번째 줄: |
| data_for_predict = df..... # 위에서 만든 판단근거와 동일한 형태의 df를 넣어준다. | | data_for_predict = df..... # 위에서 만든 판단근거와 동일한 형태의 df를 넣어준다. |
| machine.predict(data_for_predict) | | machine.predict(data_for_predict) |
− | </syntaxhighlight>가격을 예측할 때 넣는 판단근거의 df는 1행만 넣어주면 되고, 여러 행을 넣으면 리스트로 결과가 반환된다. | + | </syntaxhighlight>가격을 예측할 때 넣는 판단근거의 df는 1행만 넣어줘도 되고, 여러 행을 넣으면 리스트로 결과가 반환된다. |
| + | |- |
| + | | |
| + | | |
| + | | |
| + | |} |
| + | |
| + | == 후처리 == |
| + | {| class="wikitable" |
| + | !절차 |
| + | !설명 |
| + | !방법 |
| + | |- |
| + | |검증 |
| + | |정확도가 얼마나 되는지 검증한다. |
| + | |
| + | |
| + | 훈련데이터와 검증데이터의 분류는 [[Scikit-learn]]문서를 참고하자. |
| + | |
| + | 여기선 평균 오류값을 구하는 예시를 두었다. |
| + | |<syntaxhighlight lang="python"> |
| + | from sklearn.metrics import mean_absolute_error |
| + | |
| + | new_data = df..... # 테스트에 쓰일 df. |
| + | y = new_data.판단할열 # 실제 결과 |
| + | # 근거데이터 만들기. |
| + | features = ['열1', '열2', ...] # 판단할 자료가 될 열을 지정한다. |
| + | x = new_data[features] # 판단근거를 준비한다. |
| + | |
| + | predict = machine.predict(new_data) # 결과 예상하기. |
| + | mean_absolute_error(predict, y) # 예상결과와 실제값을 비교하여 평균 에러를 반환한다. |
| + | </syntaxhighlight> |
| |} | | |} |
| + | |
| + | === 오버피팅 방지 === |
| [[분류:랜덤포레스트]] | | [[분류:랜덤포레스트]] |
| [[분류:Scikit-learn]] | | [[분류:Scikit-learn]] |