랜덤 포레스트란?
랜덤포레스트는 배깅의 대표적인 알고리즘으로, 앙상블 알고리즘 중 비교적 빠른 수행속도를
가지고 있으며, 높은 예측 성능을 보이고 있습니다. 기반 알고리즘은 결정 트리로서, 결정
트리의 쉽고 직관적인 장점을 그대로 가지고 있습니다.
위와 같이 랜덤 포레스트는 여러 개의 결정 트리 분류기가 전체 데이터에서 배깅 방식으로 각자의 데이터를 중첩되게 샘플링해 개별적으로 학습을 수행한 뒤 최종적으로 모든 분류기가 보팅을 통해 예측 결정을 하게 됩니다.
랜덤 포레스트의 하이퍼 파라미터
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 속성을 통해 알고리즘이 선택한 피처의 중요도를 알 수 있습니다.
'AI_basic > ML' 카테고리의 다른 글
[ML] 데이터 전처리 - SMOTE 오버 샘플링 (0) | 2021.07.24 |
---|---|
[ML] 지도학습/분류 GBM(Gradient Boosting Machine) (0) | 2021.07.23 |
[ML] 앙상블 학습의 종류 (0) | 2021.07.22 |
[ML] 데이터 전처리 - 원-핫 인코딩(pd.get_dummies) (0) | 2021.07.21 |
[ML] GridSearchCV - 교차 검증과 최적 하이퍼 파라미터 튜닝을 같이 (0) | 2021.07.21 |