1. 앙상블

  • 주어진 자료로 여러개의 예측모형을 만든 후, 예측모형을 조합하여 하나의 최종예측모형을 만듬
  • 학습방법이 가장 불안전한 의사결정나무 에 주로 사용.

A. 배깅

주어진 자료에서 여러개의 bootstrap 자료를 생성하고, 각 bootstrap 자료에 예측모형을 만든 후 결합하여 최종 예측모형을 생성.

  • 보팅 은 여러 개의 모형으로부터 산출된 결과를, 다수결에 의해서 최종결과를 산출하는 과정.

최적의 의사결정나무를 구축할 때 가장 어려운 부분은 pruning 이나, 배깅에서는 가지치기를 하지 않고 최대로 성장한 의사결정나무들을 활용한다. 훈련자료의 모집단의 분포를 모르므로, 실제 문제에서는 평균 예측모형을 구할 수 없다.

  • 배깅은 이러한 문제를 해결하기 위해, 훈련자료를 모집단으로 생각하고 평균예측모형을 구하여 분산을 줄이고 예측력을 향상시킬 수 있다.

B. 부스팅

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

  • 오분류 데이터에 가중치를 부여한다.

Adaboost 는 이진분류 문제에서 랜덤 분류기보다 조금 더 좋은 분류기 개에 각각 가중치를 설정하고, 개의 분류기를 결합하여 최종 분류기를 만드는 방법을 제안했다.

  • 단, weight 의 합은 1

훈련오차를 빨리, 쉽게 줄일 수 있고, 배깅에 비해 많은 경우 예측오차가 향상되어 Adaboost 의 성능은 배깅보다 뛰어난 경우가 많다.


a. GBM

  • Gradient Boost Machine

오차를 미분한 Gradient 를 주는 것으로 모델을 보완하는 방식으로, 부스팅에서 가중치 업데이트를 경사하강법 을 이용하여 최적화된 결과를 얻는 알고리즘

  • 경사하강법 은 손실함수를 정의하고 이 함수의 미분값이 최소가 되도록 하는 방향을 찾아 접근하는 방식

  • 대표적인 GBM 기반 알고리즘은 XGBoost, LightGBM

  • 프로세스

    • 초기값으로 상수함수 적용
    • (Loss Fuction 최소화하는 Gradient 구함 - Gradient를 베이스모델 타겟값으로 사용해 Gradient 고려한 학습 진행 - 학습률 더해 최종모형 제작)
    • 괄호 반복
장점단점
일반적으로 랜덤포레스트보다 성능 높음시간이 많이 소요되어 하이퍼패러미터 튜닝 필요
예측성능 높음잔차를 최적화할수록 오차는 적으나, overfitting 가능성 있어 정규화 알고리즘 필요
병렬 처리가 지원되지 않아 대용량 데이터 학습에 많은 시간 필요

b. XGBoost

Gradient Boosting 알고리즘을 분산환경에서도 실행할 수 있도록 구현한 라이브러리

  • Regression, Classification 을 모두 지원
  • 성능, 자원 효율이 좋다.

GBM 보다 빠르며, overfitting 방지가 가능한 규제가 포함되어 있다. 유연성이 좋아 여러 패러미터를 조절하며 최적의 모델을 만들 수 있으며, 다른 알고리즘과 연계 활용성이 좋다.


c. LightGBM

XGBoost 는 굉장히 좋은 성능을 보이나, 학습시간이 여전히 길고 하이퍼패러미터도 매우 많다.

LightGBM 은 Tree 구조가 수직으로 확장하는 Leaf-Wise 방식을 채택해, 예측 오류 손실을 최소화한다.

  • 기존의 다른 Tree 기반 알고리즘은 Tree 구조가 수평으로 확장하는 level-wise 방식이다.

XGBoost 보다 속도가 빠르고, 대용량 데이터를 다루며, 메모리 사용량이 상대적으로 적고, 병렬 컴퓨팅이 가능하며, GPU 도 지원한다.

  • 10000 건 이하의 적은 dataset 에 적용하면 과적합 발생이 쉽다.

d. 랜덤포레스트

의사결정나무의 특징인 분산이 크다는 점을 고려하여, 배깅 / 부스팅보다 더 많은 무작위성을 주어 약한 학습기들을 생성한 후, 이를 선형 결합하여 최종 학습기를 만든다.

지도학습 알고리즘으로 다수의 의사결정나무를 사용한다.

  • 회귀의 경우에는 평균화를 한다.
  • 분류의 경우에는 투표를 통해 보다 정확한 결과를 예측한다.

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

  • 이론적 설명 / 최종 결과에 대한 해석이 어렵다.
  • 예측력이 매우 높다.
  • 입력변수가 많은 경우, 배깅, 부스팅과 비슷하거나 좋은 예측력을 보인다.
  • 변수 중요도
    • 의사결정나무를 기반으로 하는 모델은 변수 중요도 값을 제공한다.
    • 변수 중요도 값은 불순도를 얼마나 감소시키는지를 통해 측정되는 값이다.
    • MeanDecreaseAccuracy, MeanDecreaseGini 등의 값으로 변수 중요도를 확인할 수 있다. 이러한 값은 평균값으로 더 안정적이며 신뢰성이 높다.
장점단점
간편하고 빠른 학습 및 테스트 알고리즘매개변수를 잘못 설정하면 과적합이 발생할 수 있음
다중 클래스 알고리즘의 특성을 가짐메모리 사용량이 많음
노이즈에 민감하지 않음텍스트 데이터에는 잘 작동하지 않음
분류 / 회귀 모두에 적용 가능