-
분류 - 3Python Machine Learning/분류 2020. 8. 11. 11:30
앙상블 학습
- 여러 개의 분류기를 생성하고 그 예측을 결하함으로써 보다 정확한 최종 예측을 도출하는 기법입니다.
- 앙상블 학습의 유형은 보팅( voting ), 배깅( bagging ), 부스팅( boosting )의 세 가지로 나눌 수 있으며,
이외에도 스태킹을 포함한 다양한 앙상블 방법이 존재 합니다.
- 보팅은 서로 다른 알고리즘을 가진 분류기를 결합한 알고리즘 입니다.
- 배깅의 경우 분류기가 서로 같은 유형의 알고리즘이지만, 데이터 샘플링을 서로 다르게 가져가면서 학습을 수행해
보팅을 수행하는 것으로 대표적인 방식이 랜덤 포레스트 알고리즘입니다.
- 부스팅은 학습한 분류기가 예측이 틀린 데이터에 대해 올바르게 예측할 수 있도록 분류기에 가중치를 부여하면서 학습
과 예측을 수행하는 알고리즘입니다. 대표적인 모듈로는 그래디언트 부스트, XGBoost, LightGBM이 있습니다.
- 스태킹은 여러 모델의 예측 결괏값을 다시 학습 데이터로 만들어 다른 모델로 재학습시켜 결과를 예측합니다.
보팅 유형 - 하드 보팅과 소프트 보팅
1. 하드 보팅
- 다수결 원칙과 유사하며, 예측한 결괏값들중 다수의 분류기가 결정한 예측값을 최종 보팅 결괏값으로 선정합니다.
2. 소프트 보팅
- 분류기들의 레이블 값 결정 확률을 모두 더해 평균해서 이들 중 확률이 가장 높은 레이블 값을 최종 보팅 결괏값으로 선정합니다.
==> 일반적으로 하드 보팅보다는 소프트 보팅의 예측 성능이 좋아서 다 많이 사용됩니다.
보팅 분류기
- 사이킷런은 보팅 방식의 앙상블을 구현한 VotingClassifier 클래스를 제공합니다.
- 다음 예제는 LOAD_BREAST_CANCER( ) 함수를 통해 위스콘신 유방암 데이터 세트를 불러온 예제입니다.
유방암 데이터 세트 로지스틱 회귀와 KNN을 보팅방식으로 결합하고 보팅 분류기로 성능 비교 - VotingClassifier 클래스는 생성 인자로 estimators와 voting값을 입력받으며 estimators는 리스트 값으로 보팅에 사용될 여러 개의 Classifier 객체들을 튜플 형식으로 입력 받으며 voting은 하드, 소프트 방식을 입력 받습니다.
==> 여러 분류기를 결합한다고해서 무조건 보팅 분류기의 정확도가 높은 것은 아닙니다. 데이터의 특성과 분포등 다양한 요건에 따라 정확도는 달라집니다.
'Python Machine Learning > 분류' 카테고리의 다른 글
분류 - 6 (0) 2020.08.12 분류 - 5 (0) 2020.08.12 분류 - 4 (0) 2020.08.11 분류 - 2 (0) 2020.08.10 분류( Classification ) - 1 (0) 2020.08.10