본문 바로가기

AI/이론

[ML] Ensemble, Bagging (bootstrap aggregating) - Random Forest

  • bagging : variance를 감소시키는 역할
  • boosting : bias를 감소시키는 역할

 

 

 

 

 

  • bagging은 병렬로 학습, boosting은 순차적으로 학습 ( 가중치 재분배를 위해서 )

 

Bootstrap Aggregation (Bagging)

  • 교체된 random sampling을 말한다.
  • 부트스트랩을 사용하면 데이터 세트의 bias(편향)와 variance(분산)을 더 잘 이해할 수 있다
  • 데이터 세트에서 작은 데이터 하위 집합을 random sampling한다
  • decision tree처럼 분산이 높은 알고리즘의 분산을 줄이는데 사용할 수 있는 일반적인 절차이다.
  • Bagging은 각 모델을 독립적으로 실행한 다음 어떤 모델을 선호하지 않고 마지막에 출력을 집계한다.

 

Problems with Decision Tree

  • Decison tree는 훈련된 특정 데이트에 민감해서 훈련 데이터가 변경되면 decision tree의 결과(예측)는 상당히 달라질 수 있다.
  • 훈련시키는데 computationally expensive하고 overfitting 위험이 있고, local optima를 찾는 경향이 있다(쪼개진 후 그 전으로 돌아갈 수 없어서)

 

 

  1. 데이터로부터 복원추출을 통해 n개의 bootstrap sample 생성.
  2. 해당 sample에 대해서 모델 학습.
  3. 1, 2 과정을 M번 반복한 후 최종 Bagging 모델을 다음과 같이 정의

 

 

 

 

Bagging(배깅)

  • 동일한 모형과 모형 모수를 사용하는 대신 부트스트래핑(bootstrapping)과 유사하게 트레이닝 데이터를 랜덤하게 선택해서 다수결 모형을 적용한다
  • 트레이닝 데이터를 선택하는 방법에 따라 다음과 같이 부르기도 한다.
    • Pasting: 같은 데이터 샘플을 중복사용(replacement)하지 않음
    • Bagging: 같은 데이터 샘플을 중복사용(replacement)
    • Random Subspaces: 데이터가 아니라 다차원 독립 변수 중 일부 차원을 선택하는 경우
    • Random Patches: 데이터 샘플과 독립 변수 차원 모두 일부만 랜덤하게 사용

 

 

Bagging 자체는 적용이 매우 쉬운 방법이라 어느 기본 모델에도 적용이 가능하다.

따라서, 가장 많이 쓰이는 Random Forest에 대해서만 다뤄도 좋을 거 같다!

  • 이렇게 하는 이유 : 알고리즘의 안정성과 정확성을 향상시키기 위해서
  • 높은 bias로 인한 언더피팅
  • 높은 variance로 인한 오버피팅
  • 오버피팅을 피할 수 잇는 가장 좋은 방법
  • 대표적으로 많이 사용되는 것으로는 Random Forest

 

 

 

 

- Random Forest

Problems with Decision Tree

=>

Random Forest

  • classification과 regression을 위한 ensemble learning method를 사용하는 Supervised Learning algorithm이다.
  • bagging 테크닉이다 (not a boosting technique)
  • random forest의 tree들은 평행하게 작동된다. 이 트리를 생성할 때 트리들끼리 상호 작용하지 않는다
  • 훈련 시간에 다수의 decision tree를 구성하고 개별 트리의 클래스 모드(classification) 또는 평균 예측(regression)인 클래스를 출력하여 작동한다
  • random forest는 몇 가지 유용한 수정 사항과 함께 많은 decision trees를 집계하는 meta-estimator이다 (즉, 여러개의 예측을 결합함)
    1. 각 노드에서 쪼개질 수 있는 feature의 수는 전체(hyperparameter) 일부 비율로 제한된다. Ensemble model은 개별 feature에 크게 의존하지 않고 잠재적으로 예측 가능한 모든 feature을 공정하게 사용할 수 있음을 보장한다 
    2. 각 트리는 분할을 생성할 때 원래의 데이터 셋에서 랜덤 샘플을 가져와서 overfitting을 방지하는 랜덤 요소를 추가한다

 

 

위의 수정은 트리가 너무 높은 상관관계를 방지하는데 도움이된다.

 

9개의 서로 다른 Decision tree classifiers

이러한 decision tree classifier는 입력을 결합한 random forest ensemble로 aggregate될 수 있다. 위의 의사 결정 트리 출력의 가로 및 세로 축을 x1, x2로 생각해보자. 각 feature의 특정 값들에서 의사 결정 트리는 "파란색", "녹색", 
빨간색" 등의 분류를 출력한다

이러한 결과는 model votes 또는 averaging을 통해 개별 decision tree의 결과를 능가하는 단일 앙상블 모델로 집계된다.

 

Decision Tree classifers를 위한 Random forest ensemble

 

 

Random Forest의 장점과 특징

  • 사용 가능한 가장 정확한 learning algorithm 중 하나
  • 많은 데이터 세트의 경우 매우 정확한 분류기를 생성
  • 큰 데이터베이스에서 효율적으로 실행됨
  • 변수 삭제없이 수천개의 입력 변수를 처리할 수 있다
  • 분류에 중요한 변수를 추정
  • forest building이 진행됨에 따라 내부화되지 않은 일반화 오류 추정치를 생성한다
  • 누락된 데이터를 추정하는 효과적인 방법을 가지고 있으며 많은 양의 데이터가 누락된 경우 정확도를 유지한다

 

Random Forest 단점

  • noise classification/regression이 있는 일부 데이터 세트에 overfitting하는 것으로 관찰됨
  • 레벨 수가 다른 범주형 변주를 포함한 데이터의 경우 랜덤 포레스트는 더 많은 레벨을 가진 속성에 유리하게 편향된다. 따라서 랜덤 포레스트의 변수 importance scores는 이 유형의 데이터에 대해 신뢰할 수 없다

 

'AI > 이론' 카테고리의 다른 글

[ML] Activation1 - 종류 및 설명  (0) 2021.05.18
[ML] Ensemble, Boosting  (0) 2021.05.12
[ML] Ensemble  (0) 2021.05.12
[ML] 참고  (0) 2021.04.06
[ML] CNN  (0) 2021.04.06