* 앙상블(Ensemble)
- 주어진 자료로부터 여러개의 예측 모델들을 만든 후 예측 모형들을 조합하여 하나의 최종 예측 모형을 만드는 방법
- 다중 모델 조합, 분류기 조합
- 종류: 배깅, 부스팅, 랜덤포레스트, 스태킹 등
1) 보팅(Voting)
- 모형을 여러 개 만들어 조합
- 모형 중 성능이 가장 좋은 것을 뽑아서 다시 분석
- 하드 보팅: 다수의 분류기가 예측한 결과값을 최종 결과로 선정
- 소프트 보팅: 모든 분류기가 예측한 레이블 값을 결정 확률 평균을 구한 뒤, 가장 확률이 높은 레이블 값을 최종 결과로 선정
2) 배깅(Bagging)
- 데이터 샘플링을 통해 모델을 학습시키고 결과를 집계하는 방법
- 모형을 여러가지 뽑아 평균해서 적절하게 값을 뽑아줌, '병렬구조'를 가짐
- '랜덤 포레스트'가 가장 대표적인 배깅 방식
- 부스팅에 비해 과적합 방지에는 더 나은 방식. 하지만 여전히 과적합 가능성 존재
3) 부스팅(Boosting)
- 모형을 하나 뽑고 잘못한것을 학습해서 다음 모델로 넘긴다 -> '순차적인 직렬구조'
- 이전 분류기가 예측이 틀린 데이터에 대해서 올바르게 예측할 수 있도록 다음 분류기에 가중치를 부여하면서 학습과 예측을 진행
- 맨 마지막에 좋은 모형이 나옴
- 오차에 대한 학습이 잘 안되면 개선에 대한 한계가 있다 (ex. GradiantBoost)
- 배깅에 비해 성능은 좋지만 속도가 느리고 과적합 발생할 가능성 높음
* 보팅 코딩하기
1) 분류 예측_VotingClassifier
- 단일모형 생성
DecisionTreeClassifier, KNeighborsClassifier
- 앙상블 모형(voting) 생성
model = VotingClassifier(estimators = [("K-NN", knn), ("Dtree", dtree)], voting = "soft")
2) 회귀 예측_VotingRegressor
- 단일모형 생성
SVR(SupportVectorRegressor), MLPRegressor(인공신경망 회귀예측)
- 앙상블 모형(voting) 생성
model = VotingRegressor(estimators = [("SVR, svr), ("MLP", mlp)]
<사진 출처>
https://swingswing.tistory.com/281
'Python > Deep Learning' 카테고리의 다른 글
[Python DL]그래디언트 부스팅(Gradient Boosting)_Classifier, Regressor (0) | 2023.01.27 |
---|---|
[Python DL]랜덤포레스트(Random Forest)_Classifier, Regressor (2) | 2023.01.25 |
[Python DL]DNN, CNN, RNN & keras.models.Sequential() (0) | 2023.01.24 |
[Python DL]인공신경망(ANN, Artificial Neural Network)_MLPClassifier, MLPRegressor (0) | 2023.01.24 |