728x90
앙상블 학습
여러 개의 분류기(Classifier)를 생성하고 그 예측을 결합함으로써 보다 정확한 최종 예측을 도출하는 기법입니다.
앙상블 학습의 유형
대표적으로 ① 보팅(Voting), ② 배깅(Bagging), ③ 부스팅(Boosting) 이 있고 이외에도 스태깅 등 다양한 앙상블 방법이 있습니다.
보팅 VS 배깅 VS 부스팅
● 보팅 : 서로 다른 알고리즘을 가진 분류기를 결합하여, 데이터 샘플링을 같게 가져가면서 학습을 수행합니다.
- Hard Voting : 각각 분류기가 예측한 결괏값들 중 다수의 분류기가 결정한 예측값을 최종 보팅 결괏값으로 선정합니다.
즉, 마치 '다수결 원칙' 처럼 결과값을 선정합니다.
- Soft Voting : 분류기들의 레이블 값 결정 확률을 각 class별로 모두 더하여 평균해서 이들 중 확률이 가장 높은 레이블 값을 최종 보팅 결괏값으로 선정합니다.
● 배깅 : 여러 개의 분류기가 모두 같은 유형의 알고리즘 기반이나, 데이터 샘플링을 서로 다르게 가져가면서 학습을 수행합니다.
테이터 샘플링은 부트스트래핑(Bootstrapping) 방식으로 샘플링합니다.
* 부트스트래핑 : 주어진 데이터로부터 복원 추출로 표본을 구하는 작업을 여러 번 반복해 원하는 값을 추정
● 부스팅 : 여러 개의 분류기가 순차적으로 학습을 수행하지만, 앞서 학습한 분류기가 예측이 틀린 데이터에 대한 올바른 예측이 이루어지도록 다음 분류기에는 가중치를 부여하면서 학습과 예측을 진행하는 방식입니다.
sklearn-Voting Classifier
from sklearn.ensemble import VotingClassifier
# soft voting
# 하드보팅은 'hard'
vo_clf = VotingClassifier( estimators = [('모델이름1',model1),('모델이름2',model2)], voting = 'soft')
vo_clf.fit(X_train, y_train)
y_pred = vo_clf.predict(X_test)
accuracy_score(y_test, y_pred)
728x90
'Data Analytics with python > [Theory]' 카테고리의 다른 글
[Machine Learning] Oversampling & Undersampling (0) | 2023.02.18 |
---|---|
[Machine Learning][Classification] Classifier Algorithms (0) | 2023.02.16 |
[Machine Learning] K-Menas_2 (0) | 2023.02.14 |
[Machine Learning] 실루엣 분석 (0) | 2023.02.14 |
[Machine Learning] K-means_1 (0) | 2023.02.14 |
댓글