能否从resample重采样结果中获取训练集数据的预测结果?
结论
默认运行你给出的代码无法获取训练集分区的预测值。
原因说明
mlr3的resample()函数默认配置下,predict_sets参数默认值为"test",代表重采样过程中仅会存储测试集的预测结果,不会存储训练集的预测结果。
获取训练集预测值的修改方案
你需要在调用resample()时显式指定predict_sets参数,将训练集也纳入存储范围,修改后的代码如下:
task = tsk("penguins") learner = lrn("classif.rpart") resampling = rsmp("holdout") # 新增predict_sets参数,同时存储训练集和测试集的预测结果 rr = resample(task, learner, resampling, predict_sets = c("train", "test"))
修改完成后,你可以通过以下方式获取对应训练集的预测值:rr$predictions(predict_sets = "train")[[1]]
如果运行时仍无法获取,可以在resample()的参数中额外添加store_models = TRUE,确保重采样过程中完整保存模型相关数据。
内容的提问来源于stack exchange,提问作者Ric
相关产品推荐
相关产品推荐

