mlr3 中的留一法交叉验证

Leave-One-Out Cross-Validation in mlr3

我喜欢在 mlr3 中使用留一法交叉验证(作为管道的一部分)。

我可以指定折叠数(=实例数),例如通过

resampling = rsmp("cv", folds=task$nrow)

但这明确指的是可能无法在管道中工作的“任务”。

我该如何继续?

有一个特定的 "leave-one-out" Resampling object,名为 "loo"。它可以像任何 Resampling 对象一样使用,例如:

rs <- rsmp("loo")
rr <- resample(tsk("iris"), lrn("classif.rpart"), resampling = rs)
rr$aggregate()
#> classif.ce
#> 0.06666667

它直接从正在使用的 Task 确定迭代次数,并且没有配置参数(即有一个空的 $param_set)。