random forest 모형

bagging방식에서 bootstrap sampling을 한 data set에 적합시키는 modeldecision tree이면 random forest 알고리즘이 됩니다.

 

그 이름이 forest인데 여러개의 tree들이 모이면 forest가 된다는 점에서 상당히 어울리는 이름이라고 할 수 있습니다.

 

몇가지 핵심 아이디어를 나열해보면 다음과 같습니다.

 

bootstrap에 기반하므로 tree를 학습시키는 데이터는 동일한 데이터 row가 포함될 수 있습니다.

 

그림1. 데이터에서 bootstrap 데이터를 구성한 예시

 

다음으로 데이터로부터 decision tree를 성장시킬 때 feature에 대해 information gain이 가장 큰 feature를 선택하여 성장시켰는데 random forest는 데이터의 모든 featureinformation gain을 비교하지 않습니다.

 

주어진 feature중 일부 feature만 선택하여 선택한 일부 feature만 가지고 tree를 성장시킵니다.

 

그림2. 4개의 feature중 2개의 feature를 선택한 모습

 

만약에 2개의 feature를 선택하면서 random forest 알고리즘을 수행한다면

 

good blood circ, blocked arteries 2개의 feature에 대해 information gain을 비교하여 더 큰 information gain을 가지는 feature로 분류합니다.

 

더 재밌는 점은 다음의 partitioning에서도 또 다시 모든 feature중 일부 feature만 가지고 tree를 성장시킵니다.

 

처음에 featurerandom 선택한 뒤에 선택한 feature만으로 전체 tree를 만드는 것이 아니고 매 tree를 성장시킬 때마다 주어진 feature중 일부를 선택한 뒤에 선택된 feature들로만 information gain을 비교해서 tree를 하나 성장시키는 방식입니다.

그림3. 다음 partition을 구하는 그림

위 그림처럼 다음 partition에는 남은 3개의 feature2개의 feature를 선택하여 이 2개의 feature에 대해서만 information gain을 비교하여 더 큰 feature를 선택합니다.

 

위 과정을 반복하면 여러개의 decision tree가 완성되었을 것입니다.

 

추론과정에서 하나의 dataset이 들어왔다면 만들어진 모든 decision tree에 집어넣어 예측 결과를 모두 가져온 뒤 hard voting이나 soft voting등으로 최종 예측 결과를 냅니다.

 

추가로 decision treeregression에도 사용할 수 있으므로 당연히 random forestregression에 사용할 수 있을 것입니다.

 

참조

 

Random Forest (tistory.com)

 

Random Forest

이 글은 StatQuest with Josh Starmer 의 StatQuest: Random Forest 영상을 보고 정리한 글이다. 모든 사진과 설명에 대한 출처는 여기에 있다. Bagging 기법의 대표적인 모델인 Random Forest 을 이번 글에 정..

dailyheumsi.tistory.com

 

'정형데이터' 카테고리의 다른 글

XGBoost 모델  (0) 2021.11.02
Gradient boosting 모형  (0) 2021.11.01
Adaboost 모형  (0) 2021.11.01
boosting에 대하여  (0) 2021.10.29
bagging이란?  (0) 2021.10.27
TAGS.

Comments