본문 바로가기
IT/ML

의사결정트리 배깅(Bagging)과 랜덤포레스트(Random Forest) 쉽게 이해하기

by 모던네이쳐 2020. 11. 3.
728x90

 Bagging과 random forests는 의사결정 트리(decision tree)를 발전시켜 더 좋은 예측 모델을 만들기 위해 사용되는 기법이다.

 

 

배깅(Bagging)

 Bootstrap aggregation을 줄여 bagging이라고 부른다. Bootstrap으로 생성된 sample data sets 각각으로 모델을 만든 뒤 모델의 평균값으로 예측을 하는 방법이다. 자세한 부트스트랩 개념은 다음 페이지를 참고하면 된다.

 

Bootstrap sampling (Bootstrapping, 부트스트랩 샘플링) 쉽게 이해하기

 Bootstrap (부트스트랩)은 데이터 내에서 반복적으로 샘플을 사용하는 resampling 방법 중 하나이다.  다른 resampling 방법인 K-Fold Cross Validation은 다음 글에서 자세히 확인할 수 있다. K-Fold Cross Va..

modern-manual.tistory.com

 Bagging을 사용하면 트리 모델 하나를 만들어 예측하는 것보다 퍼포먼스가 좋아지고 variance가 줄어드는 효과가 있다.

 

$\hat{f}_{bag}(x) = \frac{1}{B} \sum^B_{b=1}\hat{f}^{*b}(x)$

 

 

랜덤 포레스트 (Random forest)

 Random forest는 Bagging 방식을 발전시킨 방법이다. Bagging을 사용하여 여러 sample data sets으로 모델을 각각 생성하는 방법은 동일하나, 여기에 추가적으로 random sample of m predictors(매 split에 사용할 파라미터 m개도 랜덤으로 선택)을 추가하여 더 다양한 트리 모델이 생성될 수 있도록 한다. 경험적으로 $m \approx \sqrt{p}$을 사용하는 것이 결과가 좋은 것으로 알려져 있다.

 어떤 predictor가 매우 강한 지표여서 bagging에서 항상 1순위로 사용된다면, 모델을 아무리 여러 개 형성하더라도 서로 비슷한 모델만이 생성될 수 있다. 이에 랜덤으로 전체 $p$개의 predictiors 중 $m$개의 predictors를 랜덤으로 선택하여 사용하는 것이 Random forest의 주요 아이디어이다. 통상적으로 Random forest에서 생성하는 트리의 개수는 100개에서 300개 정도가 무난하다.

 

 

Variable importance

 하나의 트리 모델을 만들어 예측을 하는 경우에는 분기가 명확하여 설명력(interpretability)이 좋다. Bagging과 Random forest를 사용하면 모델이 많아져 설명력이 떨어질 수 있으나 부가적으로 얻을 수 있는 정보가 있다. Variable importance를 확인할 수 있는 장점이 있는데, 이는 RSS(회귀 트리) 또는 Gini index(분류 트리)로 각 predictor가 얼마나 error를 줄였는지 전체 B개의 tree에서 평균을 내어 구할 수 있다. Variable importance measure를 그려봄으로써 중요한 파라미터를 뽑을 수 있기 때문에 반드시 확인해야 할 지표 중 하나이다.