我是使用SuperLearner R包。
我正在尝试为训练集和测试集生成预测的y值。
在没有定义“newX”来先在训练集上获取预测值以便计算MSE和绘制预测值与实际Y值的图形的情况下,我拟合了一个超级学习器模型,然后使用“predict”命令来预测测试集的Y值,运行以下代码:
在没有定义“newX”来先在训练集上获取预测值以便计算MSE和绘制预测值与实际Y值的图形的情况下,我拟合了一个超级学习器模型,然后使用“predict”命令来预测测试集的Y值,运行以下代码:
sl.cv<-SuperLearner(Y = label, X = train,
SL.library=c("SL.randomForest", "SL.glmnet", "SL.svm"),
method = "method.NNLS", verbose=TRUE, cvControl=list(V=10))
pred.sl.cv <- predict(sl.cv, newdata=test, onlySL = T)
接下来,在“predict”之后我得到了以下错误信息: “Error in object$whichScreen : $ operator is invalid for atomic vectors”
我浏览了许多在线资源,想学习如何在拟合超级学习者模型后使用“predict”,我做的就像其他人一样:也就是将已经拟合好的超级学习者模型对象名称(在这种情况下为“sl.cv”)和新的测试集放在一起。我甚至没有输入$操作符。
为什么会出现这个错误消息?我该怎么解决这个问题呢?
另一个问题是:将cvControl=list(V=10)作为选项添加是否会有任何变化?我认为超级学习者模型的默认设置是进行10倍的交叉验证。所以,删除“cvControl=list(V=10)”不会产生任何变化,对吗?
非常感谢您的建议。谢谢!