본문 바로가기
Machine Learning

배깅 앙상블 (Bagging Ensemble): Random Forest

by hyez 2022. 4. 4.

앙상블(Ensemble) 방법 중 배깅(Bagging)의 대표적인 예시인 Random Forest 알고리즘에 대해 정리한다.

 

Random Forest

여러 개의 Decision tree들이 모여서 숲을 이룬다는 의미에서 Forest라고 부른다. 각 트리는 비교적 예측을 잘 할 수 있지만, 데이터의 일부에 대해 과대적합 하는 경향을 가진다는데 기초한다. 따라서 각 트리를 많이 만들어 그 결과를 평균내어 과대적합을 방지할 수 있다.

출처: https://tyami.github.io/machine%20learning/ensemble-2-bagging-random-forest/#random-forest

학습 방법

  1. Bootstrap
    • 주어진 데이터셋으로부터 random sampling을 통해 각 decision tree를 만들기 위한 subset 생성 (중복 허용)
  2. Decision Tree
    • Bootstrap을 통해 생성된 각각의 데이터셋에 대한 Decision tree들을 구성
  3. Ensemble
    • Decision tree의 예측 결과를 voting하여 최종 예측값 얻음

 

장점

  • classification 및 regression 문제에 모두 사용 가능
  • missing value(결측치)를 다루기 용이
  • 대용량 데이터 처리에 효과적
  • 모델의 노이즈를 심화시키는 과대적합 문제 최소화, 모델 정확도 향상
  • classification 모델에서 상대적으로 중요한 변수를 선정 및 순위 매기기 가능

 

python code

python scikit-learn 라이브러리의 sklearn.ensemble.RandomForestClassifier 또는 sklearn.ensemble.RandomForestRegressor를 이용해 Random Forest를 사용할 수 있다.

# library load
from sklearn.ensemble import RandomForestRegressor

# build model
mdl = RandomForestRegressor()

# fit (training)
mdl.fit(X_trn, y_trn)

# predict (testing)
mdl.predict(X_tst, y_tst)

 

Reference

 

댓글