Answers:
相对于其他模型,Random Forests不太可能过拟合,但是您仍然需要做出明确的努力来避免这种情况。调整模型参数无疑是避免过度拟合的一个因素,但这并不是唯一的因素。实际上,我想说的是,您的训练功能比模型参数更可能导致过度拟合,尤其是对于随机森林。因此,我认为关键是真正有一种可靠的方法来评估模型,以检查是否过度拟合,这使我们想到了第二个问题。
如上所述,运行交叉验证将使您避免过拟合。根据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.
这是关于stackexchange的一个很好的链接 /stats/111968/random-forest-how-to-handle-overfitting,但是我的一般经验是模型越深越倾向于过度拟合。