这可能是一个愚蠢的问题,但我对我的数据执行了SVM,并且当C = 0.5时,模型的最佳拟合出现,因为它提供了最佳的RMSE值。哪个好。我通过以下方式对其进行了10次交叉折叠验证: -
ctrl <- trainControl(method = "repeatedcv", repeats = 10, savePred = T)
model <- train(RT..seconds.~., data=lipids, method = "lmStepAIC", trControl = ctrl)
我希望能够像执行此功能时那样查看所有预测值和观察值的值: -
model$pred
但它打印出所有不同C值(其中三个)的所有折叠和重复,这些不完全适合R的屏幕。
我有没有办法修改这个函数,以便它只打印10个重复中每个折叠的预测结果,当C等于0.5时?
这样的事情: -
pred obs rowIndex .C Resample
1 5011.101 5043.84 7 0.25 Fold01.Rep01
2 5120.894 5137.26 8 0.25 Fold01.Rep01
3 4915.161 5099.54 16 0.25 Fold01.Rep01
4 2778.198 2648.83 44 0.25 Fold01.Rep01
5 2894.722 2748.75 62 0.25 Fold01.Rep01
6 3334.751 3040.00 63 0.25 Fold01.Rep01
但只是当.C为0.5时,就像它打印的那一刻.C也是0.25和1
由于
答案 0 :(得分:0)
您想查看best
中的oneSE
和caret
功能。
我认为让它返回“最佳”的最简单方法是修改上面的例子......
model <- train(RT..seconds.~., data=lipids, method = "lmStepAIC", trControl = ctrl, selectionFunction= "best")
这应该适用于您的示例(我希望),因为best
默认参数只是具有“最佳”RMSE的模型 - 更复杂的是:help(oneSE)