앙상블 러닝

 

앙상블 러닝이란 무엇인가? 

 

간단하게 얘기해서, 

여러 약한 학습기들을 모아 학습 / 예측을 실시하고, 
그 예측을 결합하여 더욱 정확한 최종 예측을 산출하는 기법을 의미한다. 

 

굳이 왜 이렇게 하는 것일까? 

 

이전에도 얘기했듯이, 모든 머신러닝 알고리즘의 가장 큰 고민 중 하나는 과적합(Overfitting)이다. 
이 문제는 ML 알고리즘이 세부적으로 학습을 진행할수록 과적합이 심각해진다. 
하지만, 이렇게 하지 않으면 알고리즘의 예측 성능이 떨어지는 과소적합 현상이 발생한다. 

그러므로, 과적합이 일어나지 않게 하기 위해 약한 학습기로 학습을 진행하고, 하나가 아닌 여러개의 학습기들의 예측을 결합함으로써 집단 지성처럼 예측 성능이 향상되는 모습을 보인다. 이렇게 과소적합 문제까지 해결한다. 

또한, 여러 학습기들이 중요하게 생각하는 요소들이 다양하게 때문에, 성능을 평가할 때 새로운 범주의 데이터가 들어오더라도, 그에 적응하여 알맞은 예측을 하는 능력이 다른 ML 알고리즘보다 뛰어나다. 

 


 

 

앙상블 러닝의 유형 3가지 (Voting / Bagging / Boosting) 

(대표적인 유형 3가지인 것이지, 앙상블 러닝의 전체를 분류하는 기준은 아니다!)

 

 

1. Voting(보팅)

 

우리가 아는 단어의 의미처럼, 서로 다른 머신러닝 모델들의 예측을 통해서 최종 예측 값을 반환하는 것을 의미한다. 

Voting에는 Hard VotingSoft Voting이 있다.

Hard Voting : 
각 분류기의 예측 결과만을 참고하여 최종 예측 값을 산출해내는 것을 의미하낟. 

Soft Voting :
각 분류기의 0과 1의 예측 확률을 평균을 내어 평균 값으로 최종 결과를 산출하는 방식을 의미한다.

 

설명한 것처럼 Soft Voting이 더 세부적인 정보를 사용하므로, 
일반적으로 Soft Voting이 더 좋은 성능을 보인다. 

사이킷 런에서는 보팅 방식의 앙상블 러닝을 구현한 VotingClassifier 클래스를 제공하고 있다. 

 

 

 

2. Bagging(배깅)

 

Bagging 방식은 Voting 방식과는 다르게 같은 종류의 학습기를 이용한다. 

 

하지만, 그렇게 되면 동일한 학습과정을 거치고 동일한 예측 결과를 산출하지 않을까?

당연히 같은 데이터를 입력받는다면 그렇게 되겠지만, Bagging 방식은 입력하는 데이터에 차이를 준다.

여러 개의 데이터 세트를 중첩되게 분리하는 것을 부트스트래핑(Bootstrapping)이라고 하며, 여기에서 Bagging이라는 용어가 탄생하게 되었다. 
( bootstrap aggregating의 줄임말 )
부트스트랩은 통계학에서 여러개의 작은 데이터 세트를 임의로 만들어 개별 평균의 분포도를 측정하는 등의 목적을 위한 샘플링 방식을 지칭한다. 

 

Bagging 방식의 가장 유명한 기법은 랜덤 포레스트(Random Forest)이다. 

랜덤포레스트는 개별 분류기가 결정 트리이다. 사이킷 런에서 RandomForestClassifier클래스를 통해서 이용할 수 있다. 

 

Bagging의 단점 : 

- 하이퍼 파라미터가 너무 많다. : 
기본적으로 결정 트리의 하이퍼 파라미터도 많은데, 여기에 배깅, 부스팅, 학습, 정규화 등을 위한 파라미터로 인해서 너무 많은 하이퍼 파라미터를 가지고 있다.

- 수행 시간이 오래 걸린다. 

- 튜닝을 한 결과가 이전의 결과에 비해서 크게 성능에 향상이 없다. 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기