我如何在 benchmark() 中考虑 "failed" 个学习者
How can I account for "failed" learners in benchmark()
我有一长串 task/learner/resampling 组合。我通过
执行重采样
design = data.table(
task = list_of_tasks,
learner = list_of_learners,
resampling = list_of_resamplings
)
bmr = benchmark(design)
tab = bmr$aggregate(c(msr("classif.acc")))
最后一个命令失败,我收到以下错误消息:
Error in assert_classif(truth, response = response) : Assertion on 'response' failed: Contains missing values (element 1).
我如何检查哪里出了问题?学习者完成的任务略有不同,它们都是“标准”学习者(支持向量机、朴素贝叶斯)与前面 po("scale")
的组合。任务目标的预测变量中没有缺失数据。
至少一名学习者预测了 NA
s。在预测中搜索 NA
以识别失败的学习者。
library(mlr3)
library(mlr3misc)
# experiment
learner_rpart = lrn("classif.rpart")
learner_debug = lrn("classif.debug", predict_missing = 0.5)
task = tsk("pima")
resampling = rsmp("cv", folds = 3)
design = benchmark_grid(task, list(learner_rpart, learner_debug), resampling)
bmr = benchmark(design)
# search for predictions with NAs
tab = as.data.table(bmr)
tab[map_lgl(tab$prediction, function(pred) any(is.na(pred$response)))]
你应该 post 一个新问题,其代表包括失败的学习者、任务和重采样。
我有一长串 task/learner/resampling 组合。我通过
执行重采样design = data.table(
task = list_of_tasks,
learner = list_of_learners,
resampling = list_of_resamplings
)
bmr = benchmark(design)
tab = bmr$aggregate(c(msr("classif.acc")))
最后一个命令失败,我收到以下错误消息:
Error in assert_classif(truth, response = response) : Assertion on 'response' failed: Contains missing values (element 1).
我如何检查哪里出了问题?学习者完成的任务略有不同,它们都是“标准”学习者(支持向量机、朴素贝叶斯)与前面 po("scale")
的组合。任务目标的预测变量中没有缺失数据。
至少一名学习者预测了 NA
s。在预测中搜索 NA
以识别失败的学习者。
library(mlr3)
library(mlr3misc)
# experiment
learner_rpart = lrn("classif.rpart")
learner_debug = lrn("classif.debug", predict_missing = 0.5)
task = tsk("pima")
resampling = rsmp("cv", folds = 3)
design = benchmark_grid(task, list(learner_rpart, learner_debug), resampling)
bmr = benchmark(design)
# search for predictions with NAs
tab = as.data.table(bmr)
tab[map_lgl(tab$prediction, function(pred) any(is.na(pred$response)))]
你应该 post 一个新问题,其代表包括失败的学习者、任务和重采样。