[머신러닝] 앙상블(Ensemble)
Updated:
ENSEMBLES
앙상블은 여러 모델들을 함께 사용하여 정확도를 올리고 성능을 더 올리는 것을 말합니다.
Boosting
Adaboost
Bagging
Bagging(Bootstrap Aggregation)은 가방에 짐을 싸는것 같은 기법입니다.
학습 데이터를 m개의 학습 데이터로 복원 샘플링(bootstrap)을 한 후, 각각의 bag(Base Learner)에 넣어줍니다. 복원 샘플링을 하기 때문에 생성된 여러 bag은 각각 별도의 model을 독립적으로 학습합니다.
테스트 시, 학습된 여러 모델은 uniform voting(aggregation) 기반으로 결과값을 생성합니다. 출력되어 나오는 예측값들을 voting 하며 가장 많은 표를 받은 예측값이 최종값으로 결정됩니다. 예를 들면 반장선거나 국회의원 선거와 같습니다.
uniform voting 방법 외에도 서로가 다른 weight에 의해 voitting하는 방법을 적용할 수 있습니다.
샘플링 시 사용되는 용어 중 ‘down-sampling’과 ‘up-sampling’이 있습니다. ‘down-sampling’과 ‘up-sampling’은 데이터 불균형(data imbalance) 문제가 있을 때 사용합니다.
예를 들어, 다음 그림을 보면 하마는 100마리가 있는데 기린은 10마리 밖에 없는 경우 그 데이터를 가지고 모델을 학습시켰을 때 문제가 발생할 것입니다.
어떤 테스트 데이터에 대해서 거의 90%의 확률로 하마라고 결과가 나올 것 입니다. 이때 하마를 100마리 중 10마리만 가져와서 학습 시에 사용하는 것을 ‘down-sampling’이라 하고, 기린을 10마리에서 100마리로 늘려서 사용하는 것을 ‘up-sampling’이라고 합니다.
‘up-sampling’을 하기 위해 데이터를 늘려야 할 때 GAN(Generative Adversarial Network) 모델을 이용할 수 있습니다. GAN 모델을 사용하여 fake data를 생성할 수 있습니다.
Random Forest
Random Forest는 Bagging의 가장 대표적인 모델입니다. N개의 학습 데이터에 대하여 Bagging으로 K개의 bag을 생성합니다. 각각의 bag에 대하여 decision tree를 학습시킵니다. 그러면 K개의 tree 생성되고 이는 많은 tree가 있다는 것이므로 숲(Forest)이 됩니다.
학습 후, 테스트 데이터 X에 대하여 학습된 서로 다른 tree 들로부터 voting 방식을 통해 결과 값을 예측합니다.
Decision Tree의 한계는 Bias는 작고 Variance는 크기 때문에 noise에 매우 민감하고, 트리가 커지게 되면 overfitting 가능성이 크다는 것입니다.
Random Forest에서 Bagging 과정은 각 Tree의 bias는 유지하면서 variance는 작게 만들어 줍니다. 또한, 각 Tree는 서로 독립적으로 학습되었으므로, 통합된 의사 결정 시 noise에 강해지게 됩니다.
참고 자료
머신러닝 수업자료_ENSEMBLES(순천향대학교 빅데이터공학과 정영섭 교수님)
Leave a comment