mlr3加载保存的ranger模型预测新数据报错问题及解决办法
mlr3模型加载后调用predict_newdata报错的解决方法
我完成了模型训练与预测,选取在测试集上获得最高BACC的classif.ranger.tuned模型并保存,代码如下:
best_ranger<-bmr_ranger$score(msr("classif.bacc"))[learner_id == 'classif.ranger.tuned', ][classif.bacc == max(classif.bacc)]$learner[[1]] saveRDS(best_ranger, 'learner_ranger.rds') model <- readRDS('learner_ranger.rds')
随后使用与训练预处理流程完全一致的新数据调用model$predict_newdata(data_total)时,出现如下报错:
Error: No task stored, and no task provided 4. stop(simpleError(str_wrap(sprintf(msg, ...), width = wrap), call = NULL)) 3. stopf("No task stored, and no task provided") 2. .__Learner__predict_newdata(self = self, private = private, super = super, newdata = newdata, task = task) 1. model$predict_newdata(data_total)
针对mlr3手册第31页提到的「无需将数据转为task」的说明,我产生了疑惑,之后找到了解决方案:需要通过model$model$learner$predict_newdata(newdata = data_total)来调用预测方法。
内容的提问来源于stack exchange,提问作者NDe
相关产品推荐
相关产品推荐

