我是R新手。我正在使用R来探索如何在svyglm上进行机器学习的10倍交叉验证。没有流行的R包,如插入符号,mlr支持svyglm。我想使用mlr的makeresamplesinstance来创建样本折叠/拆分,并在函数/循环中使用它来对svyglm进行交叉验证。我的目标是根据交叉验证的估计进行预测,并从预测中产生平均错误分类错误和auc。
编辑:建立一个学习者是理想的解决方案。任何帮助也将受到赞赏。
这是一个可重复的例子:
library(twang)
library(survey)
library(mlr)
set.seed(1)
data(lalonde)
tsk1 = makeClassifTask(id = "re78", data = Aids2[, c("age", "educ", "black", "hispan")], target = "re78")
merge_10CV1 = makeResampleDesc("CV", iters = 10L, stratify = TRUE)
merge10CV<-makeResampleInstance(merge_10CV1, tsk1)
ps.lalonde <- ps(treat ~ age + educ + black + hispan + nodegree + married + re74 + re75,
data = lalonde)
lalonde$w <- get.weights(ps.lalonde, stop.method="es.mean")
design.ps <- svydesign(ids=~1, weights=~w, data=lalonde)
#how do I use 10 fold cross-validation here?
glm1 <- svyglm(re78 ~ age + educ + black + hispan, design=design.ps)
summary(glm1)
提前谢谢。