*제가 이해한 내용을 정리한 것입니다. 틀린내용이 있으면 지적해주세요!
랜덤포레스트(RandomForest)란?
- 여러개의 트리를 생성해서 트리의 결과를 투표해서 가장 많이 나온것을 선택하는 알고리즘이다.
랜덤포레스트를 알기전에 앙상블(ensemble)이라는 것을 알아야 한다.
'약한 분류기를 강한 분류기로 만드는 알고리즘'
앙상블은 여러개의 알고리즘을 통합해서 가장 잘 나오는 것을 뽑는 방식이다.
결론적으로 랜덤포레스트는 앙상블을 쓴 알고리즘이다.
앙상블에 대표적인 4가지 방식을 알아보자
1. Voting : 여러개 다른 알고리즘을 여러개 써서 그 중 가장 많이나온 결과를 사용하는 방법이다.
1) hard voting : 여러개의 결과를 투표해서 가장 많이 나온 결과
2) soft voting : 각각의 확률을 구해서 가장 높은 확률 클래스를 선택하는 방식 - 가장 선호하는 방법
2. Bagging : 하나의 알고리즘을 부트스트랩(랜덤으로 중복을 허용한 샘플을 선택)으로 나눠 그 중 많이 나온 결과를 사용하는 방법
- 랜덤포레스트가 이 알고리즘이다.
3. Boosting : 배깅과 비슷하지만, 전에 알고리즘이 예측하지 못한 값에 가중치를 두어 다음 알고리즘이 그 가중치를 중점으로 학습하며 계속 이어나가는 방법
4. Stacking : 여러개의 알고리즘을 학습시켜서 나온 예측값을 학습시켜 예측값을 얻는 방식이다.
앙상블을 이해했으면 랜덤포레스트가 뭔지 이해 될것이다.
의사결정나무(DecisionTree)라는 알고리즘을 여러개를 중복으로 분할시켜 그 중 가장 많이나온 예측값을 사용하는거다.
이 방식은 결정트리의 단점인 노드가 깊이 내려갈수록 과대적합 되는 것을 보완해줄 수 있다.
그래서 분류모델에는 결정트리보다 랜덤포레스트를 많이 사용한다. 단점은 결정트리보다 학습속도가 느리다는 것..
앙상블 모델은 랜덤포레스트 말고도 ExtraTree, Adaboost, GrdientBoosting, Xgboost등 다양한 모델이 존재한다.
'ML | DL > 머신러닝 이론|실습' 카테고리의 다른 글
Pycaret AutoML으로 ensemble 하는법 (0) | 2022.03.17 |
---|---|
k-최근접 이웃(KNN, K-Nearest Neighbor) 이론 설명 (0) | 2020.10.30 |
결정트리(의사결정나무, Decision Tree) (0) | 2020.10.30 |
서포트 벡터 머신(Support Vector Machine, SVM) (0) | 2020.10.30 |
[머신러닝] 로지스틱 회귀(Logistic regression) (0) | 2020.10.28 |
댓글