gpt4 book ai didi

r - SuperLearner 对样本外测试集的预测

转载 作者:行者123 更新时间:2023-11-30 08:41:40 26 4
gpt4 key购买 nike

R 中的 SuperLearner 包返回 SL.predict 下训练集中包含的所有观测值的预测值,并返回系数 (coef )对不同的底层算法进行加权,以构成交叉验证中每次折叠的 SuperLearner 算法,但我无法弄清楚如何使用该包来获取样本外测试集的预测值。例如,下面是来自他们 manual 的玩具示例。我所做的唯一更改是在末尾添加保留测试集 X2 和 Y2。如何根据训练集中的 SuperLearner 模型估计样本外测试集的预测值?如何保存模型结果,以便我可以基于同一模型估计 future 的预测值?

library(SuperLearner)


set.seed(23432)
## training set
n <- 500
p <- 50
X <- matrix(rnorm(n*p), nrow = n, ncol = p)
colnames(X) <- paste("X", 1:p, sep="")
X <- data.frame(X)
Y <- X[, 1] + sqrt(abs(X[, 2] * X[, 3])) + X[, 2] - X[, 3] + rnorm(n)
# build Library and run Super Learner
SL.library <- c("SL.glm", "SL.randomForest", "SL.gam", "SL.polymars", "SL.mean")
## Not run:
test <- CV.SuperLearner(Y = Y, X = X, V = 10, SL.library = SL.library,
verbose = TRUE, method = "method.NNLS")
test
summary(test)
# Look at the coefficients across folds
coef(test)
## End(Not run)

###Added Test Set
X2 <- matrix(rnorm(n*p), nrow = n, ncol = p)
colnames(X2) <- paste("X", 1:p, sep="")
X2 <- data.frame(X2)
Y2 <- X2[, 1] + sqrt(abs(X2[, 2] * X2[, 3])) + X2[, 2] - X2[, 3] + rnorm(n)

最佳答案

您可以对 SuperLearner 对象使用 predict 方法在根据所有数据估计模型之后(CV.SuperLearner 在数据的几个子集上估计模型,不是全部数据)。

r <- SuperLearner(Y = Y, X = X, SL.library = SL.library, verbose = TRUE, method = "method.NNLS")
plot( Y2 ~ predict(r, newdata=X2)$pred )

关于r - SuperLearner 对样本外测试集的预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18680529/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com