Machine learning #4 Random forest

코딩/Machine learning|2022. 3. 8. 19:53

Overview

 

Machine learning #3 Decision tree

(1, 50) -> (1, 1) tabular data를 바탕으로 간단한 categorical 예측 모델을 MLP로 만들어 보았는데 category가 2개뿐임에도 불구하고, 독립변수가 50개로 너무 많아서 그런지 학습을 반복해도 accuracy가 0.4949..

nogrowth.tistory.com

에서 알아보다가 이해를 위해 Decision tree를 먼저 공부했었던 Random forest algorithm에 대해 살펴보자. 

해당 글에서 짧게 정리했던 바로는

 

Random forest란..

Ensemble learning(여러 결과를 통합하는 방식)의 한 method로서 분류, 회귀 문제에 적용 가능하고 multitude of decision tree 들을 구성하는 방법

  • 분류에서 : 가장 많은 tree로 결정된 class를 반환한다. 
  • 회귀에서 : 각각 tree들의 결과의 평균을 반환한다. 

decision tree의 특성인 overfitting을 교정하기 때문에 보통 더 성능이 좋으나 accuracy는 Gradient boosted tree보다는 낮다.

 

간단히 말해

여러 종류의 Tree로 구성된 Forest를 구성해서

데이터를 각각 모든 Tree를 통과시켜 이 결과를 Ensemble 함으로써 개별 Tree의 overfitting 효과를 희석하는 개념이 되겠다. 

 

 

Bagging

Bagging, https://medium.com/greyatom/a-trip-to-random-forest-5c30d8250d6a

Bagging data

가장 먼저 Bagging이라는 과정을 거친다.

Training set의 부분집합으로 개별 Tree들을 형성하는 과정이며, 이때 부분집합의 추출에서는 중복이 허용된다. 

 

Bagging features

이때 dataset 뿐만 아니라 feature을 선택함에 있어서도 bagging을 시행한다. 

즉, root node를 정할 때 모든 feature들의 information gain을 계산하는 것이 아니라,

모든 feature의 부분집합에서만 계산하여 root를 결정하고

이후 하위 단계에서도 해당 과정을 반복하며, 이 bagging에서도 이전 bagging과의 중복 추출이 허용된다. 

이때 일반적으로 전체 feature가 N 개라면 √N 개의 추출을 시행한다. 

 

Classify

Bagging 후 multitude of tree가 구성되었다면, 이제 train data를 통과시켜 결과를 모으고

최종 분류를 시행하며, 이때 다수결을 사용한다. 

댓글()