머신러닝

머신 러닝 -분류 학습(Ensemble Learning)

J.H_DA 2022. 4. 13. 17:52

앙상블 학습: 여러개의 분류기를 생성하고 그 예측을 결합함으로써 보다 정확한 최종예측을 도출하는 기법을 나타낸다.

 

앙상블 특징:

단일 모델의 약점을 다수의 모델들을 결합하여 보완

뛰어난 성능을 가진 모델들로만 구성하는 것보다 성능이 떨어지더라도 서로 다른 유형의 모델을 섞는 것이 오히려 전체 성능에 도움이 될수 있다.

랜덤 포레스트 및 뛰어난 부스팅 알고리즘들은 모두 결정 트리 알고리즘을 기반 한 알고리즘으로 적용한다.

 

 

분류기의 예측 결과를 결합함으로써 단일 분류기보다 신뢰성이 높은 예측값을 얻는 것이다.

보팅, 배깅, 부스팅 으로 구분되어 있으며 배깅에는 랜덤포레스트 알고리즘, 부스팅에는 에이다 부스팅, 그래디언트 부스팅, XGBoost, LightGBM 등이 있다.

 

보팅과 배깅의 차이점은 보팅의 경우 일반적으로 서로 다른 알고리즘을 가진 분류기를 결합하는 것이고, 배깅의 경우 가각각의 분류기가 모두 같은 유형의 알고리즘 기반이지만, 데이터 샘플링을 서로 다르게 가져가면서 학습을 수행하는 것이다.

 

배깅 방식은 여러 개의 모델이 독립적이다.  여러 개의 모델을 만들기 위해 각 모델별로 임의의 데이터 세트를 생성하는데 이 때 생성되는 데이터 세트는 기존 데이터 세트에서 중복을 허용한 채로 무작위로 N개를 선택하여 데이터를 생성-이를 부트스트랩(Bootstrap)이라고 부른다.

 

배깅의 대표적인 알고리즘은 랜덤포레스트 이다. 앙상블 알고리즘 중 비교적 빠른 수행 속도를 가지고 있으며, 다양한 영역에서 높은 예측 성능을 보이고 있다.  랜덤포레스트는 여러 개의 결정 트리 분류기가 전체 데이터에서 배깅 방식으로 각자의 데이터를 샘플링해 개별적으로 학습을 수행한 뒤 최종적으로 모든 분류기가 보팅을 통해 예측 결정을 하게 된다.

 

하드보팅보다는 소프트 보팅이 예측 성능이 우수하다.

 

부스팅 방식은  마찬가지로 여러 모델을 만들지만 부스팅 방식에서 만들어지는 모델들은 이전 모델의 오차를 보완하는 방향으로 만들어진다. 이를 위해 각 모델이 데이터 세트를 생성하는 과정이 다르다.  부스팅은 랜덤하게 데이터를 선택하지만 이전 학습에서 오차가 심했던 데이터들에 가중치를 부여하여 데이터를 선택한다. 이로써 계속 오차를 보완해나가는 연속적인 모델들을 생성하게 된다.

 

Adaboost: 에이다부스트는 위에 설명한 부스팅 기법을 발전시킨 알고리즘이다.기존 부스팅 기법은 최종 모델을 개별 분류기의 단순 앙상블로 만들어 냈지만, 에이다부스트는 학습에 이용된 개별 분류기에 서로 다른 가중치를 주어서 최종 분류기를 만들어낸다.

 

GBM: GBM은 Gradient Descent 기법을 이용하여 손실함수를 최소화하는 방향으로 학습을 한다.

AdaBoost에서는 Exponential error function을 사용했지만, GBM에서는 내가 원하는 Loss function을 사용할 수 있다는 장점이 있다.

 

XGboost: XGBoost 또한 Gradient Boosting에 기반을 두고 있다. 하지만 XGBoost는 CART기반의 트리를 사용하고, 손실함수 뿐만 아니라 모형 복잡도까지 고려하고 있는 기법입니다. 그만큼 XGBoost또한 많은 양의 모수들이 필요하다.

 

 

 

 

 

 

 

 

 

 

728x90

'머신러닝' 카테고리의 다른 글

머신 러닝-k-Nearest Neighbor(kNN)  (0) 2022.04.14
머신 러닝 XGboost  (0) 2022.04.14
타이타닉 생존자 분류 예측  (0) 2022.04.13
머신 러닝 분류 알고리즘-DecisionTree  (0) 2022.04.12
성능평가 - ROC 곡선과 AUC  (0) 2022.04.12