강의자료 · 머신러닝의 이해

Decision Tree와 Random Forest · 학습

이번에 배울 내용

학습 자료를 잘 맞춘 트리가 새 자료에서도 좋은지 확인해 모델 복잡도를 선택합니다.

트리의 질문과 복잡도

Decision Tree는 특징값을 기준으로 자료를 나눕니다. 깊이가 커지면 학습 자료의 세부 차이까지 맞출 수 있지만 새 자료에서 오류가 커질 수 있습니다.

같은 조건의 모델 비교

Random Forest는 여러 트리의 결과를 모읍니다. 단일 트리와 같은 split·전처리·지표로 비교해야 복잡도 차이를 해석할 수 있습니다. 정확도와 클래스별 오류를 함께 봅니다.

풀이 예제

Iris 데이터를 test_size=.3, random_state=7, stratify=y로 나눕니다. 깊이는 1,3,None입니다.

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
X,y=load_iris(return_X_y=True)
Xtr,Xte,ytr,yte=train_test_split(X,y,test_size=.3,random_state=7,stratify=y)
model=DecisionTreeClassifier(max_depth=3,random_state=7).fit(Xtr,ytr)
print(model.score(Xte,yte))
0.9777777777777777

참고 예제

추가 예제 보기

참고 자료