使用mlr包对svyglm进行10次交叉验证

时间:2018-04-22 05:46:21

标签: r cross-validation survey mlr

我是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)

提前谢谢。

0 个答案:

没有答案