如何从R中执行CV.SuperLearner获取预测值

时间:2013-12-07 16:19:18

标签: r

我有一个数据集,我正在进行逐步回归,并进行交叉验证。我最初使用交叉验证执行多元线性回归,并且能够看到我的测试集的值与我的训练集的接近程度每个折叠(我使用该值然后绘制一个图表,其中我测量了性能)。我是做同样的事情,但逐步回归。我在R中执行了以下算法: -

test <- CV.SuperLearner(Y,X, V = 10, SL.library = SL.library, verbose = TRUE, method = "method.NNLS")

但是我无法看到我如何能够看到每个折叠的值以及它们的接近程度。有没有办法让我能够这样做?

我尝试了printsummary,但他们没有提供我想要的信息。

由于

1 个答案:

答案 0 :(得分:2)

?CV.SuperLearner中解释了这一点: 结果包含AllSL个广告位,包含所有折叠。

# Sample data
library(SuperLearner)
example(CV.Superlearner)

str(test$AllSL)             # You see a list with V=10 elements
test$AllSL[[1]]             # The first fold
predict( test$AllSL[[1]] )  # The predicted values

如果要与实际值进行比较, 您需要知道折叠中包含哪些观察结果。

plot( 
  Y[ test$folds[[1]] ],
  predict( test$AllSL[[1]] )$pred,
  xlab = "Actual", ylab = "Predicted",
  main = "First fold"
)  

更一般地说,要检查对象的内容,您可以使用strnamesprintsummaryplot

之外
str(test)              # Too long to be useful
names(test)
str(test$AllSL)
str(test$AllSL[[1]])
str(test$folds)