반응형
AdaBoost (Adaptive Boosting)
- GradientBoosting 처럼 내부에 약한 성능의 분류기를 가지는 앙상블 모델이다.
- GradientBoosting이 이전 분류기가 만든 잔여 오차에 대해 새로운 분류기를 만들었다면, AdaBoost는 이전의 분류기가 잘못 분류한 샘플에 대해서 가중치를 높여서 다음 모델을 훈련시킨다. 반복마다 샘플에 대한 가중치를 수정하는 것이다.
- 훈련된 각 분류기는 성능에 따라 가중치가 부여되고, 예측에서 각 분류기가 예측한 레이블을 기준으로 가중치까지 적용해 가장 높은 값을 가진 레이블을 선택한다.
- 순차적 학습을 해야하는 만큼 병령수행은 불가능하다.
AdaBoostClassifier()
- base_estimator : 앙상블에 포함될 기본 분류기종류, 기본값으로 DecisionTreeClassifier(max_depth=1)를 사용
- n_estimators : 모델에 포함될 분류기 개수
- learning_rate : 학습률
- algorithm : 부스팅 알고리즘, 기본값='SAMME.R'
- random_state : 난수 seed 설정
사용예제
from sklearn.model_selection import train_test_split
from sklearn.datasets import make_moons
import matplotlib.pyplot as plt
# 데이터 로드
X, y = make_moons(n_samples=100, noise=0.25, random_state=3)
X_train, X_test, y_train, y_test = train_test_split(X, y, stratify=y, random_state=42)
from sklearn.ensemble import AdaBoostClassifier
# 모델 학습
model = AdaBoostClassifier(n_estimators=5, random_state=42)
model.fit(X_train, y_train)
# 평가
print("훈련 세트 정확도 : {:.3f}".format(model.score(X_train, y_train)))
print("테스트 세트 정확도 : {:.3f}".format(model.score(X_test, y_test)))
반응형
'🛠 기타 > Data & AI' 카테고리의 다른 글
기초 추천시스템 - 사용자 기반 협업 필터링 (2) | 2020.08.23 |
---|---|
기초 추천시스템 - 컨텐츠기반 필터링 (2) | 2020.08.21 |
[scikit-learn 라이브러리] GradientBoosting (0) | 2020.08.19 |
Attention 기초 (리뷰 요약하기 예제) (1) | 2020.08.18 |
Seq2Seq 기초 (챗봇 데이터 활용 예제) (2) | 2020.08.14 |