一旦找到重要的功能,是否应该使用前几个功能重新构建模型,以查看功能选择是否以较小的预测能力成本加快计算加速?
现在,我已经使用训练集和所有功能构建了模型,并且我正在使用它来预测测试集。我正在计算训练集中的MSE和R平方。我在培训数据上获得了高MSE和低R2,并反向测试数据(如下所示)。这是不寻常的吗?
> forest <- randomForest(fmla, dTraining, ntree=501, importance=T)
> mean((dTraining$y - predict(forest, data=dTraining))^2)
> > 0.9371891
> rSquared(dTraining$y, dTraining$y - predict(forest, data=dTraining))
> > 0.7431078
> mean((dTest$y - predict(forest, newdata=dTest))^2)
> > 0.009771256
> rSquared(dTest$y, dTest$y - predict(forest, newdata=dTest))
> > 0.9950448
您还应该尝试
Cross Validated
试图找到重要功能时,我应该在整个数据集上运行回归森林,还是在培训数据上运行回归森林?
一旦找到重要的功能,是否应该使用前几个功能重新构建模型,以查看功能选择是否以较小的预测能力成本加快计算加速?
speed up computation
。借助无限的功能,可以拟合任何数据模式(即过拟合)。通过功能选择,您希望仅使用几个“强大”功能来防止过度拟合。
现在,我已经使用训练集和所有功能构建了模型,并且我正在使用它来预测测试集。我正在计算训练集中的MSE和R平方。我在培训数据上获得了高MSE和低R2,并反向测试数据(如下所示)。 Is this unusual?
Yes, it's unusual.您需要训练
和测试数据的低MSE和高R2值。 (我会仔细检查您的计算。)如果您使用培训数据获得了高MSE和Low R2,则意味着您的培训很差,这非常令人惊讶。另外,我还没有使用
rSquared
,但也许你想要rSquared(dTest$y, predict(forest, newdata=dTest))
?