답변:
다른 모델에 비해 랜덤 포레스트는 과적 합 가능성이 적지 만 여전히 피하기 위해 명시 적으로 노력하고 싶은 것입니다. 튜닝 모델 파라미터는 과적 합을 피하는 요소 중 하나 일 뿐이지 만 유일한 것은 아닙니다. 실제로 나는 당신의 훈련 기능이 특히 랜덤 포레스트에서 모델 매개 변수보다 과적 합을 일으킬 가능성이 더 높다고 말할 것입니다. 따라서 열쇠가 실제로 다른 것보다 과적 합을 확인하기 위해 모델을 평가하는 신뢰할 수있는 방법을 가지고 있다고 생각합니다. 이는 두 번째 질문으로 이어집니다.
위에서 언급했듯이 교차 유효성 검사를 실행하면 과적 합을 피할 수 있습니다. CV 결과를 기반으로 가장 적합한 모델을 선택하면 과적 합되지 않은 모델로 이어질 수 있으며 이는 반드시 가방 오류와 같은 경우가 아닙니다. R에서 CV를 실행하는 가장 쉬운 방법은 caret
패키지를 사용하는 것입니다. 간단한 예는 다음과 같습니다.
> library(caret)
>
> data(iris)
>
> tr <- trainControl(method = "cv", number = 5)
>
> train(Species ~ .,data=iris,method="rf",trControl= tr)
Random Forest
150 samples
4 predictor
3 classes: 'setosa', 'versicolor', 'virginica'
No pre-processing
Resampling: Cross-Validated (5 fold)
Summary of sample sizes: 120, 120, 120, 120, 120
Resampling results across tuning parameters:
mtry Accuracy Kappa Accuracy SD Kappa SD
2 0.96 0.94 0.04346135 0.06519202
3 0.96 0.94 0.04346135 0.06519202
4 0.96 0.94 0.04346135 0.06519202
Accuracy was used to select the optimal model using the largest value.
The final value used for the model was mtry = 2.
@ xof6은 모델의 깊이가 높을수록 과적 합되는 경향이 있다는 점에서 정확하지만 유용한 매개 변수를 더 추가하고 싶었습니다. R에 어떤 패키지를 사용하고 있는지 전혀 알지 못하며 R에 익숙하지 않지만 이러한 매개 변수의 대응 요소가 구현되어 있어야한다고 생각합니다.
나무 수-이 숫자가 클수록 숲이 과적 합 될 가능성이 줄어 듭니다. 즉, 각 의사 결정 트리가 교육 데이터의 일부 측면을 학습할수록 더 많은 옵션을 선택할 수 있습니다. 기능 수-이 숫자는 각 개별 트리가 학습하는 기능 수를 나타냅니다. 이 수가 증가함에 따라 나무는 점점 더 복잡해 지므로 테스트 데이터에는 없을 수있는 패턴을 학습하고 있습니다. 올바른 가치를 찾기 위해서는 약간의 실험이 필요하지만 기계 학습도 마찬가지입니다. 우리가 언급했듯이 일반적인 깊이로 실험하십시오!
여기 stackexchange에 그에 좋은 링크입니다 /stats/111968/random-forest-how-to-handle-overfitting 그러나 내 일반적인 경험 모델이 더는 경향이있다 더 깊이가가 과적 합하다.