1. moons 데이터셋에 결정 트리를 훈련시키고 세밀하게 튜닝해보자.
from sklearn.datasets import make_moons
from sklearn.model_selection import train_test_split
X,y=make_moons(n_samples=1000,noise=0.4, random_state=42)
X_train,X_test,y_train,y_test=train_test_split(X,y,test_size=0.2,random_state=42)
DecisionTreeClassifier의 최적의 매개변수를 찾기 위해 교차 검증과 함께 그치드 탐색을 수행한다.
from sklearn.model_selection import GridSearchCV
from sklearn.tree import DecisionTreeClassifier
params={'max_leaf_nodes':list(range(2,100)),'min_samples_split':[2,3,4]}
grid_search_cv=GridSearchCV(DecisionTreeClassifier(random_state=42),params,cv=3,verbose=1)
grid_search_cv.fit(X_train,y_train)
grid_search_cv.best_estimator_
기본적으로 GridSearchCV는 전체 훈련 세트로 찾은 최적의 모델을 다시 훈련시킵니다(refit=False로 지정해서 바꿀 수 있다). 그래서 별도로 작업할 필요가 없다. 모델의 정확도를 바로 평가할 수 있다
from sklearn.metrics import accuracy_score
y_pred=grid_search_cv.predict(X_test)
accuracy_score(y_test,y_pred)
'Machine Learning > Advanced (hands on machine learning)' 카테고리의 다른 글
19. 앙상블 학습과 랜덤 포레스트 - 배깅과 페이스팅 (0) | 2021.05.22 |
---|---|
19. 앙상블 학습과 랜덤 포레스트 - 투표 기반 분류기 (0) | 2021.05.22 |
19. 결정 트리 - 회귀, 불안정성 (0) | 2021.05.21 |
18. 결정 트리 - 규제 매개변수 (0) | 2021.05.21 |
17. 결정 트리 - 클래스 확률 추정, CART 훈련 알고리즘, 계산 복잡도 (0) | 2021.05.21 |