Machine Learning/Classification

Ensemble Learning - Voting(보팅)

진성01 2022. 8. 2. 14:13

Ensemble Learning(앙상블 학습)은 여러 개의 분류기(Classifier)를 생성하고 그 예측을 결합하여 보다 정확학 최종 예측을 도출하는 기법이다. 이미지, 영상, 음성 등의 비정형 데이터의 분류는 딥러닝이 앙상블보다 뛰어난 성능을 보이고 있지만 정형 데이터 분류에 있어서는 앙상블이 더 뛰어난 성능을 나타내고 있다.

 

대표적인 앙상블 학습 유형은 3가지가 있다.

  • 보팅(Voting)
  • 배깅(Bagging)
  • 부스팅(Boosting)

 

이번 글에서는 앙상블 학습 유형 중 하나인 보팅(Voting)에 대해 소개한다.

 

Voting

 

(사진출처: https://eunsour.tistory.com/58 )

 

Voting은 일반적으로 서로 다른 알고리즘을 가진 분류기를 결합한다. 위의 그림은 Voting 방식을 도식화한 것이다. 동일한 데이터 셋에 대하여 Decision Tree, K Nearest Kneighbor, Logistic Regression 등의 다양한 Classifier를 통해 값을 예측한 후 예측 값을 통합하여 최종 예측값을 산출한다.

 

출처: inflearn 머신러닝 완벽가이드 강의

보팅의 방법은 하드 보팅(Hard Voting)과 소프트 보팅(Soft Voting)이 있다. 

 

하드 보팅은 다수결의 원칙과 같이 가장 많은 Classifier가 정답으로 선택한 예측값을 최종 예측값으로 선정한다. 왼쪽 그림은 하드 보팅을 도식화 한 그림이다. class 1로 예측한 Classifier가 3개, class 2로 예측한 Classifier가 1개로 가장 많은 표를 받은 class 1이 최종 예측값이 된다.

 

소프트 보팅은 횟수가 아닌 확률을 총합하여 최종 예측값을 결정한다. 각각의 Classifier는 예측값을 산출할 때 확률 값을 이용한다. Classifier에 내장된 predict_proba()메소드를 이용하여 각 class에 대한 확률 값을 반환할 수 있는데 이렇게 얻은 확률값을 모두 더해 가장 높은 확률을 가지는 class가 최종 예측값이 된다.

 

일반적으로 소프트 보팅이 하드 보팅보다 예측 성능이 좋아 더 많이 사용된다.