Data Analysis

Python/머신러닝 & 딥러닝

[머신러닝] 앙상블 (Ensemble)

Holy_Water 2022. 11. 12. 15:01

앙상블 모형

- 앙상블(ensemble) 모형은 여러 개의 분류모형에 의한 결과를 종합하여 분류의 정확도를 높이 는 방법이다.

- 이는 적절한 표본추출법으로 데이터에서 여러 개의 훈련용 데이터 집합을 만들어 각각의 데이터 집합에서 하나의 분류기를 만들어 앙상블 하는 방법이다. 즉, 새로운 자료에 대해 분류기 예측값들의 가중 투표(weighted vote)를 통해 분류를 수행한다.
- 데이터를 조절하는 가장 대표적인 방법에는 배깅(bagging)과 부스팅(boosting)이 있다. 랜덤포리스트(random forest) 방법은 배깅의 개념과 속성(또는 변수)의 임의 선택(random selection)을 결합한 앙상블 기법이다.

 

앙상블 방법은 개별 모형에 비해 다음의 장점을 가진다.

- 평균을 취함으로써 편의를 제거해준다: 치우침이 있는 여러 모형의 평균을 취하면, 어느 쪽에도 치우치 지 않는 결과(평균)를 얻게 된다.

- 분산을 감소시킨다: 한 개 모형으로부터의 단일 의견보다 여러 모형의 의견을 결합하면 변동이 작아진다.

- 과적합의 가능성을 줄여준다: 과적합이 없는 각 모형으로부터 예측을 결합(평균, 가중 평균, 로지스틱 회귀)하면 과적합의 여지가 줄어든다.

 

 

배깅

- 배깅(bagging)은 bootstrap aggregating의 준말로 원 데이터 집합으로부터 크기가 같은 표 본을 여러 번 단순임의 복원 추출하여 각 표본(이를 붓스트랩 표본이라 함)에 대해 분류기 (classifiers)를 생성한 후 그 결과를 앙상블 하는 방법이다.

- 반복추출 방법을 사용하기 때문에 같은 데이터가 한 표본에 여러 번 추출될 수도 있고, 어떤 데 이터는 추출되지 않을 수도 있다.

 

부스팅

- 부스팅(boosting)은 배깅의 과정과 유사하나 붓스트랩 표본을 구성하는 재표본(re-sampling) 과정에서 각 자료에 동일한 확률을 부여하는 것이 아니라, 분류가 잘못된 데이터에 더 큰 가중을 주어 표본을 추출한다.

- 부스팅에서는 붓스트랩 표본을 추출하여 분류기를 만든 후, 그 분류결과를 이용하여 각 데이터 가 추출될 확률을 조정한 후, 다음 붓스트랩 표본을 추출하는 과정을 반복한다.

- 아다부스팅(AdaBoosting: adaptive boosting)은 가장 많이 사용되는 부스팅 알고리즘이다.

 

랜덤포리스트

- 랜덤포리스트(random forest)는 배깅에 랜덤 과정을 추가한 방법이다.

- 원 자료로부터 붓스트랩 샘플을 추출하고, 각 붓스트랩 샘플에 대해 트리를 형성해 나가는 과정 은 배깅과 유사하나, 각 노드마다 모든 예측변수 안에서 최적의 분할(split)을 선택하는 방법 대 신 예측변수들을 임의로 추출하고, 추출된 변수 내에서 최적의 분할을 만들어 나가는 방법을 사 용한다.

- 새로운 자료에 대한 예측은 분류(classification)의 경우는 다수결(majority votes)로, 회귀 (regression)의 경우에는 평균을 취하는 방법을 사용하며, 이는 다른 앙상블 모형과 동일하다.