-
[앙상블 모델] GradientBoostingRegressor공부/A.I 2021. 7. 17. 18:55
파이썬 라이브러리를 활용한 머신러닝(번역개정판)
사이킷런 핵심 개발자에게 배우는 머신러닝 이론과 구현 현업에서 머신러닝을 연구하고 인공지능 서비스를 개발하기 위해 꼭 학위를 받을 필요는 없습니다. 사이킷런(scikit-learn)과 같은 훌륭
books.google.co.jp
- 그레이디언트 부스팅 회귀 트리
앙상블 방법 중 하나인 그레이디언트 부스팅 회귀는 여러개의 결정 트리를 묶어 모델을 만든다.
무작위성이 없고, 강력한 사전 가지치기가 작용한다.
이전 트리의 오차를 보완하는 방식으로 순차적으로 트리를 만든다.
보통 깊이가 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 배깅 (0) 2021.07.29 [앙상블 모델] Random forest2 (0) 2021.06.27 [앙상블 모델] Random forest (0) 2021.06.19 graphviz ExecutableNotFound, PATH오류 (0) 2021.05.30