본문 바로가기

ADsP(데이터 분석 준전문가)/개념정리

[3-5. 정형 데이터 마이닝] 3. 앙상블 분석

728x90

학습목표

- 분류분석 문제의 해결을 위한 의사결정나무와 같은 방법론은 개발데이터에 너무 적합되어있어 테스트데이터에는 좋은 정확도가 나타나지 못함

- 앙상블 기법 : 과대적합/과소적합의 문제를 해결하기 위해 여러 개의 분류기를 활용하여 앙상블을 이루도록 만든 것

- 앙상블 기법 중에 배깅, 부스팅, 랜덤포레스트, 스태킹 등이 있음

- 배깅 : 여러개의 붓스트랩의 자료를 통해 예측된 분류결과를 결합하는 방법

- 부스팅, 랜덤포레스트 : 분류기들에 가중치를 주어 선형결합을 통해 최종 결과를 예측하는 방법

 

1) 앙상블(Ensemble)

1. 정의

- 주어진 자료로부터 여러 개의 예측모형들을 만든 후 예측모형들을 조합하여 하나의 최종 예측모형을 만드는 방법

- 다중 모델 조합(Combining Multiple Models), 분류기 조합(Classifier Combination)

2. 학습방법의 불안전성

- 학습자료의 작은 변화에 의해 예측모형이 크게 변하는 경우, 그 학습방법은 불안정하다

- 가장 안정적인 방법으로는 1-Nearest Neighbor(가장 가까운 자료만 변하지 않으면 예측모형이 변하지 않음)

, 선형회귀모형(최소제곱법으로 추정해 모형결정)이 존재

- 가장 불안정한 방법으로는 의사결정나무 이다

3. 앙상블 기법의 종류

) 배깅

- Breiman(1994)에 의해 제안

- 주어진 자료에서 여러 개의 붓스트랩(Bootstrap)자료를 생성하고 각 붓스트랩 자료에 예측모형을 만든 후 결

합하여 최종 예측모형을 만드는 방법

- 붓스트랩 : 주어진 자료에서 동일한 크기의 표본을 랜덤 복원추출로 뽑은 자료

- 보팅(Voting) : 여러개의 모형으로부터 산출된 결과를 다수결에 의해서 최종 결과를 선정하는 과정

- 최적의 의사결정나무를 구축할 때 가장 어려운 부분이 가지치기이지만

배깅에서는 가지치기를 하지 않고 최대로 성장한 의사결정나무들을 활용

- 훈련자료의 모집단의 분포를 모르기 때문에 실제 문제에서는 평균예측 모형을 구할 수 없다

- 배깅은 이러한 문제를 해결하기 위해 훈련자료를 모집단으로 생각하고

평균예측모형을 구하여 분산을 줄이고 예측력을 향상시킬 수 있다

*붓스트랩은 주어진 자료에서 단순랜덤 복원추출방법을 활용하여 동일한 크기의 표본을 여러개 생성하는 샘플링 방법

*붓스트랩을 통해 100개의 샘플을 추출하더라도 샘플에 한 번도 선택되지 않는 원데이터가 발생할 수 있는데 전체 샘플의 약 36.8%가 이에 해당

) 부스팅

- 예측력이 약한 모형들을 결합하여 강한 예측모형을 만드는 방법

- 부스팅 방법 중 Freund&Schapire가 제안

- Adaboost는 이진분류 문제에서 랜덤분류기보다 조금 더 좋은 분류기 n개에 각각 가중치를 설정하고

n개의 분류기를 결합하여 최종 분류기를 만드는 방법을 제안(,가중치의 합은 1)

- 훈련오차를 빨리 그리고 쉽게 줄일 수 있다

- 배깅에 비해 많은 경우 예측오차가 향상되어 Adaboost의 성능이 배깅보다 뛰어난 경우가 많다

 

*GBM(Gradient Boosting Machine)

-AdaBoost와 유사하나, 가중치 업데이트시 경사 하강법(Gradient Descent)를 이용

*XGBoost(Extreme Gradient Boosting)

-Gradient Boosted Decision Trees 알고리즘에 기반해 분류, 회귀 등의 모델을 제공하며, GBM에 비해 빠른 수행 시간과 과적합 방지 기능

*Light GBM

-Tree 기반 학습 알고리즘으로 기존의 다른 Tree기반 알고리즘과 달리 leaf-wise 방식을 따르므로,

속도가 빠르며 큰 사이즈의 데이터를 다룰 수 있고 메모리를 적게 차지

 

) 랜덤 포레스트(Random Forest)

- Breiman(2001)에 의해 개발

- 의사결정나무의 특징인 분산이 크다는 점을 고려하여 배깅과 부스팅보다 더 많은 무작위성을 주어 약한 학습기들을 생성한 후

이를 선형 결합하여 최종 학습기를 만드는 방법

- Random Forest 패키지는 Random Input에 따른 Forest of Tree를 이용한 분류방법

- 랜덤한 Forest 에는 많은 트리들이 생성된다

- 수천개의 변수를 통해 변수제거 없이 실행되므로 정확도 측면에서 좋은 성과를 보임

- 이론적 설명이나 최종 결과에 대한 해석이 어렵다는 단점이 있지만 예측력이 매우 높은 것으로 알려져 있음

- 특히 입력변수가 많은 경우, 배깅과 부스팅과 비슷하거나 좋은 예측력을 보임

 

728x90