본문 바로가기
실습 & 활동/LG Aimers

Module 3. 지도학습 (분류/회귀) - Ensemble

by sim0609 2023. 1. 25.

Ensemble Learning

: 이미 사용하거나 개발한 알고리즘의 간단한 확장

: supervised learning task에서 성능을 올릴 수 있는 방법

 

앙상블 방식

: 머신러닝에서 알고리즘의 종류에 상관없이 서로 다르거나, 같은 매커니즘으로 동작하는 다양한 머신러닝 모델을 묶어 함께 사용하는 방식

 

ex) SVM이나 NN 등 여러 다른 모델을 함께 모아서 예측 모델의 집합으로 사용하며, 이때 하나의 학습 모델을 expert로 표현하고 이를 통해 다양한 모델의 장점을 살려 예측 성능을 향상시킴

 

ensemble learning은 전체 학습 데이터셋을 랜덤하게 나누어 모델들을 학습(단, 동일한 모델을 사용할 경우 같은 학습 데이터셋으로 학습하면 안됨)시킨 뒤, 모델의 출력을 모아 다수결을 통해 최종 결과를 제공

 

 

Build Ensemble Classifiers

ensemble learning을 이용한 장점

 

1. 예측성능을 안정적으로 향상시킴

: 모델 하나의 결정보다 다양한 여러 개 모델의 결정으로 최종 예측 결과를 제공하기에 noise로부터 안정적

 

2. 구현이 간단하고 쉬움

: 여러 개의 모델을 학습하고, 직접적으로 연합하여 적용하기 때문에 간편하게 사용 가능

 

3. parameter tuning이 많이 필요하지 않음

: 각 모델은 독립적으로 동작하여 모델 파라미터 튜닝이 많이 필요하지 않음

 

ensemble learning을 이용한 단점

 

1. compact representation이 불가함

: 다양한 모델을 혼합하여 사용하기 때문에 모델 자체로 compact 표현은 불가능

 

→ Bagging과 Boosting은 앙상블을 구성하는 가장 기본적인 기술

 

Bagging

: 학습 과정에서 training sample을 랜덤하게 나누어 학습 가능하고, 각 샘플이 다른 모델에 영향이 가지 않도록 병렬적으로 학습함

 

초기 데이터셋을 n개로 구분하고, 각 classifier가 랜덤하게 학습하여 서로 다른 특성에 대해 학습할 수 있음

→ 이런 경우 classifier가 같은 모델이더라도 다른 특성의 학습이 가능

 

Bagging = bootstrapping + aggregating으로 이루어짐 

 

→ 이러한 Bagging은 lower variance를 통해 안정적인 성능을 제공하는데 유용함

 

→ 학습 데이터 샘플의 수가 적거나 모델이 복잡한 경우에 발생하는 overfitting 문제에 대해 sample을 랜덤하게 선택하는 과정에서 data augmentation(데이터 증강) 효과를 가질 수 있음

 

→ 간단한 모델을 집합적으로 사용할 수 있어 보다 더 안정적인 성능 제공이 가능

 

 

Bootstrapping

:  다수의 샘플 데이터셋을 생성해서 학습하는 방식을 의미

 

데이터셋 사용 방법

같은 모델을 사용한다면 모델 파라미터가 서로 달라져야 할 것이기 때문에 sample을 랜덤하게 선택해야 함

하지만, 서로 다른 모델을 사용한다면 모델이 다른 형태로 다르게 동작하기 때문에 같은 sample을 이용해도 됨

 

이러한 과정을 m번 반복하여 m개의 데이터셋을 사용하는 효과가 있도록 하여 noise의 영향을 최소화함

 

Aggregating

: m개의 모델이 학습 완료된 경우, 각 결정들을 합해 최종 결론 도출

 

 

Boosting

: sequntial하게 동작하도록 하는 방식으로, 연속적으로 classifier의 결과를 적용할 경우 이전에 동작한 classifier들의 결과를 현재 classifier의 결과 향상에 사용가능하다는 아이디어를 가짐

 

이러한 boosting 개념을 잘 설명할 수 있는 것이 weak classifier의 cascading임

 

 

Weak classifier

: bias가 높은 classifier

: 모델 자체가 단순하기 때문에 Strong classifier에 비해 성능이 낮아 혼자서는 높은 성능을 제공하기 어려운 모델

 

하지만, weak classifer에 cascading을 적용하면 연속적으로 적용되어 sequential한 특성을 가지고 classifier 성능을 더욱 향상시킬 수 있음

 

ex) weak classifier를 연속적으로 사용하게 된다면 복잡한 sample들도 아래 그림처럼 효과적으로 구분할 수 있음

 

 

Adaboost

: 대표적인 boosting 알고리즘

: base classifier에 의해서 오분류된 sample에 대해 보다 높은 가중치를 두어 다음 학습에 사용할 수 있게 함

: 간단하게 구현이 가능하며 특정한 학습 알고리즘에 구애받지 않음

 

m개의 sequential base classifier가 있다고 가정했을 때, 첫 classifier에서 특정 데이터 샘플에 높은 가중치를 두면 다음 classifier는 해당 가중치를 통해 어려운 error를 해결하는데 더 특화된 모델로써 동작할 수 있음

 

이와 같은 연속적인 re-classify 동작으로 우수한 결과를 제공함

 

 

Random Forest

: Bagging과 Boosting을 활용한 대표적인 알고리즘

 

: Dicision Tree의 집합으로, 서로 다르게 학습된 Dicision Tree의 결정으로 예측을 수행하기 때문에 자체적으로 bagging을 통해 학습한다고 할 수 있음. 또한, Dicision Tree의 매 노드에서 결정이 이루어지기 때문에 자체적으로 weak classification의 sequential한 boosting을 수행한다고 할 수 있음

 

: boosting 기법은 gradient boosting machine (GBM)이 유명

 

Performance evaluation in supervised learning

: model 성능을 평가하는 방식은 model의 정확도인 accuracy를 통해 측정할 수 있음

 

confusion matrix

: 각 경우에 대해 오차가 얼마나 있었는지 표현하는 방법

: 아래 오른쪽 그림에서 대각 성분에 해당하는 것이 분류가 정확하게 수행된 값

 

여기서 Accuracy는 confusion matrix에서 대각 성분을 합한 값을 전체 성분으로 나눈 값으로 계산하게 됨

 

 

용어 정리)

True Positive(TP): 실제로 sample이 positive한데 positive로 판정한 결과 (correct)

False Positive(FP): 실제로 sample이 negative한데 positive로 판정한 결과 (wrong)

False Negative(FN): 실제로 sample이 positive한데 negative로 판정한 결과 (wrong)

True Negative(TN): 실제로 sample이 negative한데 negative로 판정한 결과 (correct)

 

 

Precision: 실제 암 환자 / 전체 암 판정
: 정밀도를 나타내는 지표로, 모델이 참이라고 분류한 것 중 실제 참인 것의 비율

(전체 암으로 판정받은 환자 중에서 얼마나 정확하게 분류되어 그 중에 암 환자가 실제로 얼마나 있었는지를 판정하는데 사용)

 

Recall: 실제 암 환자 / 전체 암 환자
: 재현율을 나타내는 지표로, 실제 참인 것 중 모델이 참이라고 분류한 것의 비율

(전체 암 환자 중에서 얼마나 많은 숫자의 암 환자를 판정해 냈는지를 보이게 됨)

 

 

아래 그림처럼 unbalanced 데이터셋의 경우 accuracy 이외에도 precision과 recall 값을 동시에 보아야 모델 성능을 제대로 측정할 수 있음

 

 

ROC Curve

: 서로 다른 classifier의 성능을 측정하는 curve임

 

 

가로축: FPR로 표현하며 1-TPR과 같음

세로축: recall 값을 의미

 

왼쪽 상단으로 갈수록 좋은 curve를 의미

 

 

Error measure

: 풀고자하는 문제 혹은 데이터에 따라 recall이나 prediction 값을 잘 고려해야 함

 

ex) 아래 그림에서 왼쪽 confusion matrix같은 경우 암환자를 정상으로 판별하면 안되기 때문에 Recall 값이 높아야 하지만, 오른쪽 그림의 경우 재난 지원금에서 미지급 판정을 받은 사람이 적어야 하기에 Precision 값이 높아야 함