본문 바로가기
AI_basic/ML

[ML] 지도학습/분류 랜덤 포레스트(RandomForest)

by hits_gold 2021. 7. 23.
반응형

랜덤 포레스트란?

   랜덤포레스트는 배깅의 대표적인 알고리즘으로, 앙상블 알고리즘 중 비교적 빠른 수행속도를

    가지고 있으며, 높은 예측 성능을 보이고 있습니다. 기반 알고리즘은 결정 트리로서, 결정

    트리의 쉽고 직관적인 장점을 그대로 가지고 있습니다.

<랜덤 포레스트>

위와 같이 랜덤 포레스트는 여러 개의 결정 트리 분류기가 전체 데이터에서 배깅 방식으로 각자의 데이터를 중첩되게 샘플링해 개별적으로 학습을 수행한 뒤 최종적으로 모든 분류기가 보팅을 통해 예측 결정을 하게 됩니다.

 

랜덤 포레스트의 하이퍼 파라미터

   1. n_estimators : 결정 트리의 개수를 지정하고, 디폴트는 10개입니다.

   2. max_features : 결정 트리와 같으나 디폴트가 "None"이 아니라 "auto"="sprt"와 같습니다.

   3. max_depth, min_samples_leaf와 같이 결정 트리에서 과적합을 개선하기 위해 사용되는

     파라미터가 똑같이 적용됩니다.

 

랜덤포레스트 실습

get_human_dataset() 은 유틸리티 함수로 사용자 행동인식 데이터를 가져옵니다.

여기서 n_jobs = -1은 컴퓨터의 모든 코어를 사용하게됩니다.

 

n_estimators 즉 분류기의 수를 100 -> 300으로 늘렸지만 예측 성능은 소폭 감소하였습니다.

분류기의 수가 크다고 성능이 무조건 향상되는 것은 아닙니다. 또한 학습 수행 시간이 더 오래

걸리는 것도 감안해야 합니다.

 

RandomForest는 DecisionTreeClassifier와 마찬가지로 feature_importances 속성을 통해 알고리즘이 선택한 피처의 중요도를 알 수 있습니다.

 

 

반응형