random forest 모형
bagging방식에서 bootstrap sampling을 한 data set에 적합시키는 model이 decision tree이면 random forest 알고리즘이 됩니다.
그 이름이 forest인데 여러개의 tree들이 모이면 forest가 된다는 점에서 상당히 어울리는 이름이라고 할 수 있습니다.
몇가지 핵심 아이디어를 나열해보면 다음과 같습니다.
bootstrap에 기반하므로 tree를 학습시키는 데이터는 동일한 데이터 row가 포함될 수 있습니다.
다음으로 데이터로부터 decision tree를 성장시킬 때 feature에 대해 information gain이 가장 큰 feature를 선택하여 성장시켰는데 random forest는 데이터의 모든 feature의 information gain을 비교하지 않습니다.
주어진 feature중 일부 feature만 선택하여 선택한 일부 feature만 가지고 tree를 성장시킵니다.
만약에 2개의 feature를 선택하면서 random forest 알고리즘을 수행한다면
good blood circ, blocked arteries 2개의 feature에 대해 information gain을 비교하여 더 큰 information gain을 가지는 feature로 분류합니다.
더 재밌는 점은 다음의 partitioning에서도 또 다시 모든 feature중 일부 feature만 가지고 tree를 성장시킵니다.
처음에 feature를 random 선택한 뒤에 선택한 feature만으로 전체 tree를 만드는 것이 아니고 매 tree를 성장시킬 때마다 주어진 feature중 일부를 선택한 뒤에 선택된 feature들로만 information gain을 비교해서 tree를 하나 성장시키는 방식입니다.
위 그림처럼 다음 partition에는 남은 3개의 feature중 2개의 feature를 선택하여 이 2개의 feature에 대해서만 information gain을 비교하여 더 큰 feature를 선택합니다.
위 과정을 반복하면 여러개의 decision tree가 완성되었을 것입니다.
추론과정에서 하나의 dataset이 들어왔다면 만들어진 모든 decision tree에 집어넣어 예측 결과를 모두 가져온 뒤 hard voting이나 soft voting등으로 최종 예측 결과를 냅니다.
추가로 decision tree가 regression에도 사용할 수 있으므로 당연히 random forest도 regression에 사용할 수 있을 것입니다.
참조
'정형데이터' 카테고리의 다른 글
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 |