Ensemble Learing(앙상블 기법)의 개념
- Random Forest 모델의 기반
- 다수의 ML 모델을 결합하여 학습, 예측하는 기법
- Decision Tree 등의 단순한 모델을 여러 개 결합하여 사용
- 단일 ML 모델을 사용하는 것보다 일반적으로 예측 성능이 높음
- 최신 앙상블 기법은 정형 데이터 셋에 대해서는 딥러닝에 필적하는 성능을 보임(Kaggle에서 많이 사용됨)
- 앙상블 기법의 종류 : Voting, Bagging, Boosting
Voting 기법
- 서로 다른 ML 모델을, 동일한 데이터셋으로 학습
- 다수의 학습된 모델로 Prediction한 값으로 최종 투표
Bagging 기법
- Bootstrap Aggregating의 약자
- 전체 학습 데이터셋에서 무작위 복원 샘플 데이터 추출
- 동일한 ML 모델을 서로 다른 샘플 데이터셋으로 학습. 각 학습은 독립적으로 수행
- 이후 Voting 기법과 동일하게 최종 투표
Boosting 기법
- Bagging과 유사하게 동일한 ML 모델을, 서로 다른 샘플 데이터셋으로 학습
- 학습이 순차적이며, 이전 단계의 학습 결과를 토대로 다음 단계 샘플링에 가중치를 결정
- 예측 성능이 가장 높지만, 학습 속도가 매우 느림
- 최신 Boostinf 기법은 Voting과 Bagging만큼 속도가 빠름
* Logistic Regression과 Decision Tree를 앙상블 기법의 Voting 기법으로 학습시킨 모델
from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score
cancer = load_breast_cancer()
x_train, x_test, y_train, y_test = train_test_split(cancer.data, cancer.target, test_size=0.3, random_state=12)
from sklearn.ensemble import VotingClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.tree import DecisionTreeClassifier
# LogisticRegression 및 DecisionTreeClassifier 객체 생성
lr = LogisticRegression(random_state=12)
dt = DecisionTreeClassifier(random_state=12)
# VotingClassifier 객체 생성
voting = VotingClassifier(estimators=[('LR',lr), ('DT',dt)], voting='soft')
# VotingClassifier 학습 및 검증
voting.fit(x_train , y_train)
pred = voting.predict(x_test)
# accuracy_score 호출하여 accuracy 계산 후 출력
print('Accuracy: {0:.3f}'.format(accuracy_score(y_test, pred)))
'프로젝트 > 코드프레소 체험단' 카테고리의 다른 글
파이썬으로 구현하는 머신러닝 : 비지도학습 - 주성분분석(PCA)의 개념 (0) | 2022.02.10 |
---|---|
파이썬으로 구현하는 머신러닝 : 트리모델 - Random Forest (0) | 2022.02.09 |
파이썬으로 구현하는 머신러닝 : 트리모델 - Decision Tree의 특징 (0) | 2022.02.09 |
파이썬으로 구현하는 머신러닝 : 트리모델 - Decision Tree 모델의 학습 (0) | 2022.02.09 |
파이썬으로 구현하는 머신러닝 : 트리모델 - 지도학습을 위한 트리모델 (0) | 2022.02.09 |