0

这可能是一个愚蠢的问题,但我对我的数据执行了 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 的屏幕。

有没有办法我可以修改该函数,使其仅在 C 等于 0.5 时打印出 10 次重复中每个折叠的预测结果?

所以是这样的: -

      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 时

谢谢

4

1 回答 1

0

您想查看 中的bestoneSE函数caret

我认为让它返回“最佳”的最简单方法是修改上面的示例......

model <- train(RT..seconds.~., data=lipids, method = "lmStepAIC", trControl = ctrl, selectionFunction= "best")

这应该适用于您的示例(我希望),因为best默认参数只是具有“最佳”RMSE 的模型 - 更复杂的请参见:help(oneSE)

于 2013-12-10T19:20:00.277 回答