오답노트

[ML] Boosting - Gradient Boost 본문

Python/ML

[ML] Boosting - Gradient Boost

권멋져 2022. 8. 26. 19:08

Gradient Boost

Gradient Boost는 Boosting 기법에서 모델을 Dicision Tree를 사용하는 알고리즘이다.

 

xgboost

Gradient Boost를 모델링할 수 있는 라이브러리이다.

간단하게 불러오는 방법과 hyper parameter를 알아보자

 

from xgboost import XGBClassifier

model = XGBClassifier(n_estimators = 5,max_depth=3,learning_rate = 0.3)
pred = model.predict(x_val)
print(classification_report(y_val, pred))

'''

              precision    recall  f1-score   support

           0       0.71      0.72      0.72       769
           1       0.70      0.69      0.70       731

    accuracy                           0.71      1500
   macro avg       0.71      0.71      0.71      1500
weighted avg       0.71      0.71      0.71      1500


'''

 

  • n_estimators : 반복할 모델의 개수를 의미한다. 값이 커질 수록 복잡도가 커진다.
  • learnig_rate : 각 모델의 예측값에 대한 비율을 설정할 수 있다.
  • max_depth : 트리 모델의 크기를 정할 수 있다.

plot_tree

Gradient Boost에서 생성되는 트리 모델들을 시각화하여 볼 수 있다.

하지만 그전에 graphviz를 설치해야한다. 설치 방법은 검색 해보자.

설치 후 바로 코드를 실행하면 환경변수 관련 오류가 발생한다.

관련 파일을 다운로드 받아 해당 경로를 환경변수에 추가하자.

 

plot_tree(model, num_trees = 0)
plt.show()

 

  • num_trees : 모델의 넘버를 입력하면 해당 모델을 시각화해서 보여준다. 0번부터 시작한다.

'Python > ML' 카테고리의 다른 글

[ML] 비지도 학습 - DBSCAN  (0) 2022.08.29
[ML] 비지도 학습 - k-means  (0) 2022.08.26
[ML] 앙상블 - Boosting  (0) 2022.08.26
[ML] Bagging - Random Forest  (0) 2022.08.25
[ML] 앙상블 - Bagging  (0) 2022.08.25