바뀜

1,141 바이트 추가됨 ,  2021년 9월 1일 (수) 21:03
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]]