School/머신러닝

Ensemble Learning

응엉잉 2022. 5. 4. 01:14

앙상블 학습

여러개의 분류기를 이용하여 데이터를 분류하는 방법

장점

여러 분류기를 동시에 사용함에 따라 분류 오차 감소

: 여러 독립적이고 다양한 결과를 조합할 경우, 각 개별 결과들이 최소한 random guessing 보다 우수하다면 무작위 오차들이 서로 상쇄되어 좋은 결과를 가져옴 

step 

step1. 여러 가설(분류기) 집합을 선택

step2. 여러 분류기로부터 발생한 예측 결과를 조합

 

step1 에서의 방법과 step2 에서의 방법에 따라 앙상블 학습 분류 가능

 

step1

Homogeneous Ensemble 한 종류의 학습 방법을 사용하지만, 학습 데이터를 조작하여 서로 다른 학습데이터를 사용하여 각각 모델을 학습시킴 (다른 instance, 다른 feature 등)
Heterogeneous Ensemble 같은 학습 데이터에 대해 서로 다른 학습 알고리즘 사용 (같은 학습데이터에 DT, 나이브베이즈, 로지스틱 회귀 등 적용)

step2

majority voting 모든 분류기가 1표씩 공평하게 행사
weighted voting 투표 결과에 가중치를 부여
ex) 정확도 높은 모델의 예측결과에 높은 가중치, 정확도 낮은 모델의 예측결과에 낮은 가중치

* majority vote accuracy

= 앙상블 모델이 데이터를 정확히 예측할 확률

ex) 5개의 독립적인 분류기가 있다고 가정, 각각의 분류기의 정확도가 70%

majority vote accuracy = 5개 모델이 정답일 확률 + 4개 모델이 정답일 확률 + 3개 모델이 절반일 확률

(과반수가 틀리게 되면 앙상블 모델도 틀리게 예측하게 되니까)

5C5(0.7)^5 + 5C4(0.7)^4(0.3)^1 + 5C3(0,7)^3(0.3)^2

 

* Homogeneous Ensemble 의 학습데이터 조작방법에 따른 분류

1. Bagging 

Resample training data

bootstrap aggreagtion 이용하여 앙상블 모델 학습

1) bootstrap : 학습데이터 X로부터 N개의 sample 을 복원 추출 (이때 학습데이터 X의 크기는 N)

2) bootstrap -> 학습 과정을 반복하면서 M개의 모델을 M개의 bootstrap sample 로부터 학습시킴

3) combine outputs by voting

bagging 예시 : round 1 에서는 10이 많이 선택됨

 

효과 : 개별 unstable learner 의 분산을 감소시킴으로서 전체적인 오차를 감소시킴 = 모델의 민감도를 낮춰줌 

* unstable larner : 학습 데이터의 작은 변화가 결과의 큰 변화를 야기하는 학습 알고리즘 = 과적합되기 좋은 알고리즘

 

2. Boosting

Reweight training data

: Weak Learner 의 의 학습 성능을 개선해서 Strong Learner 로 바꾸는것

* Weak Learner : 무작위 선택보다 더 우수한(=학습 정확도가 0.5 이상인) 정확도의 모델을 생성하면 달성 가능

* Strong Learner : 원하는 수준의 정확도를 가지는 모델 생성이 목표(=머신러닝의 목표)

 

- key insights

bagging 처럼 sampling 하는게 아니고 데이터별로 가중치를 수정

데이터들은 각각 가중치를 가지고있으며, 매 iteration 마다 새로운 가설(모델)이 해당 가중치를 이용해 학습

현재 가설에서 오분류된 데이터가 다음 가설에서는 많이 반영될 수 있도록 새로운 가중치를 부여 

최종 분류기는 weak classifier 들의 weighted vote 로 이루어짐

동일한 가중치로 시작 -> weak leanrer 에 의해 오분류된 데이터의 가중치는 증가, 정분류된 데이터의 가중치는 감소

이전 단계에서 제대로 분류하지 못한 어려운 데이터 분류에 집중

 

weighted voting

weak classifier 의 wighted voting 을 통해 strong classifier 를 학습

좋은 weak classifier 가 높은 가중치를 부여받음

반복적으로 weak classifier 를 추가, 조합된 분류기의 성능을 지속적으로 향상

 

동일한 가중치로 시작한 후 error 여부 판단, error 가 적을수록 분류기의 성능이 좋은거니까 이후 weighted voting 할 때 필요한 가중치값 α 가 커짐. 다음 step 에서의 가중치는 오분류시 커질 수 있도록 - α 와 exp 함수를 이용, 해당 가중치를 이용해서 다음 step 에서의 error 여부를 판단하고 해당 과정을 반복

 

 

 

 

 

 

 

 

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

Random Forest 와 추천시스템  (0) 2022.05.10
의사결정나무(Decision Tree)-1  (0) 2022.04.16
로지스틱 회귀  (0) 2022.04.12
선형분류  (0) 2022.04.06
과적합과 과소적합  (0) 2022.03.30