더북(TheBook)

7.4.2 사이킷런에서 에이다부스트 사용

이전 절에서 에이다부스트를 간략하게 소개했습니다. 이제 실제 사용하는 부분으로 넘어가서 사이킷런으로 에이다부스트 앙상블 분류기를 훈련시켜 보죠. 이전 절에서 배깅 분류기를 훈련할 때 사용한 Wine 데이터셋을 사용하겠습니다. base_estimator 속성으로 깊이가 1인 결정 트리를 전달하여 트리 500개로 구성된 AdaBoostClassifier를 훈련시키겠습니다.22

>>> from sklearn.ensemble import AdaBoostClassifier
>>> tree = DecisionTreeClassifier(criterion='entropy',
...                               random_state=1,
...                               max_depth=1)
>>> ada = AdaBoostClassifier(base_estimator=tree,
...                          n_estimators=500,
...                          learning_rate=0.1,
...                          random_state=1)
>>> tree = tree.fit(X_train, y_train)
>>> y_train_pred = tree.predict(X_train)
>>> y_test_pred = tree.predict(X_test)
>>> tree_train = accuracy_score(y_train, y_train_pred)
>>> tree_test = accuracy_score(y_test, y_test_pred)
>>> print('결정 트리의 훈련 정확도/테스트 정확도 %.3f/%.3f'
...       % (tree_train, tree_test))
결정 트리의 훈련 정확도/테스트 정확도 0.916/0.875

 

 


22 역주 AdaBoostClassifierbase_estimator 기본값은 깊이가 1인 DecisionTreeClassifier입니다. AdaBoostRegressorbase_estimator 기본값은 깊이가 3인 DecisionTreeRegressor입니다. AdaBoostClassifier는 원본 에이다부스트 알고리즘의 변종인 SAMME와 SAMME.R 알고리즘을 사용합니다. algorithm 매개변수는 기본값 'SAMME.R''SAMME' 중 하나를 선택할 수 있습니다. AdaBoostRegressor는 AdaBoost.R2 알고리즘을 사용합니다. 에이다부스트 알고리즘에 대한 자세한 내용은 <핸즈온 머신러닝 2판>(한빛미디어, 2020) 7장을 참고하세요.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.