[Machine Learning] 앙상블(Ensemble) 기법
앙상블 기법이라는 것은 특정 모델 하나에 전적으로 의지 하지 않고 모델 여러개를 활용해서 일종의 '집단지성'을 발휘하는 방법이라고 이해하시면 좋을 것 같습니다. 사실 요새 대표적인 머신러닝 기법으로 활용되는 Adaboost, Gradient Boost같은 방법들이 이 범주에 포함된다고 볼 수 있습니다. 만약에 회귀문제라면 여러 모델들의 결과값을 평균낸다든가 하는 방식으로 취합할 수 있고, 분류문제라면 다수결 등의 방법으로 취합할 수 있습니다.
앙상블의 종류에 대해서 한 번 알아볼까요?
딥러닝이 여러 분야에서 활약을 하고 있지만 실제 현업에서는 또 도깨비 방망이 같은 만능키는 아닌 것이 사실입니다.
실제로 많이 마주치게 되는 정형데이터들은 분석하기에 어려운 난관이 많죠... 대표적으로 label이 불균형해서 생기는 data imbalace 문제같은 것들이 있는데, 앙상블 기법은 이러한 어려움을 우회하는데 도움이 되기도 합니다.
(사실 졸업 후 지원했던 IT 기업 한 곳의 면접과제가 이와 관련이 있었습니다)
아래 블로그에서는 Boosting 알고리즘과 함께 예시 코드도 제공하고 있어서 참고하시기에 좋을 것 같습니다.
[Chapter 4. 분류] 부스팅알고리즘(AdaBoost, GBM)
4-4. Boosting Algorithm(AdaBoost & GBM) In [1]: from IPython.core.display import display, HTML display(HTML(" ")) 1. Boosting Algorithm¶ 부스팅 알고리즘은 여러 개의 약한 학습기(wea..
injo.tistory.com
의사결정나무(Decision Tree) 모델에 대해 앙상블 기법을 적용한 대표적인 방법론이 Random forest 인데요. Random forest는 기본적으로 Bagging 기법을 사용하는데, 조금 다른 점이 있다면 Random 과정을 추가하는 점이 특성이라고 할 수 있습니다. 즉, 예측에 동원되는 설명변수를 항상 다 넣고 Decision Tree 를 만드는게 아니라 동원되는 변수도 그 때 그 때 랜덤하게 뽑는 것입니다. 왜냐하면 항상 모든 변수를 넣게 되면, 그 때마다 중요변수 한 두개만 압도적으로 영향을 끼쳐서 만들어지는 나무들이 다 고만고만할 수 있기 때문이죠.
앙상블의 일반론에 대해서는 이것으로 포스팅을 마치도록 하겠습니다.