-
[앙상블 모델] GradientBoostingRegressor공부/A.I 2021. 7. 17. 18:55
- 그레이디언트 부스팅 회귀 트리
앙상블 방법 중 하나인 그레이디언트 부스팅 회귀는 여러개의 결정 트리를 묶어 모델을 만든다.
무작위성이 없고, 강력한 사전 가지치기가 작용한다.
이전 트리의 오차를 보완하는 방식으로 순차적으로 트리를 만든다.
보통 깊이가 1~5정도의 얕은 트리를 사용한다.
from sklearn.ensemble import GradientBoostingClassifier from sklearn.model_selection import train_test_split import matplotlib.pyplot as plt from sklearn.datasets import load_breast_cancer cancer = load_breast_cancer() X_train, X_test, y_train, y_test = train_test_split(cancer.data, cancer.target, random_state=0) gbrt = GradientBoostingClassifier(random_state=0) gbrt.fit(X_train, y_train) print("훈련 셋 결과 : %.3f" %gbrt.score(X_train, y_train)) print("테스트 셋 결과 : %.3f" %gbrt.score(X_test, y_test)) gbrt2 = GradientBoostingClassifier(random_state=0, max_depth=1) gbrt2.fit(X_train, y_train) print("max_depth, 훈련 셋 결과 : %.3f" %gbrt2.score(X_train, y_train)) print("max_depth, 테스트 셋 결과 : %.3f" %gbrt2.score(X_test, y_test)) gbrt3 = GradientBoostingClassifier(random_state=0, learning_rate=0.01) gbrt3.fit(X_train, y_train) print("learning_rate, 훈련 셋 결과 : %.3f" %gbrt3.score(X_train, y_train)) print("learning_rate, 테스트 셋 결과 : %.3f" %gbrt3.score(X_test, y_test))
max_depth : 트리의 최대 깊이
learning_rate : 모델의 학습률
n_estimators : 트리의 개수
- 그레디언트 부스팅에서 조기종료를 위한 매개변수
n_iter_no_change와 validation_fraction
validation_fraction비율만큼 검증데이터로 활용하여, n_iter_no_change반복동안 검증점수가 향상되지 않으면 훈련이 조기종료된다.
'공부 > A.I' 카테고리의 다른 글
배깅 (0) 2021.07.29 [앙상블 모델] Random forest2 (0) 2021.06.27 [앙상블 모델] Random forest (0) 2021.06.19