如何解决使用“mlr3pipelines”预处理数据后,“mlr3filters”的变量重要性在“mlr3proba”中不起作用
使用 R 的 mlr3proba
和 mlr3pipelines
和 mlr3filters
包运行下面的代码以在预处理数据集上实现 rpart
算法并执行“变量重要性”,显示错误:
task <- tsk("iris")
learner <- lrn("classif.rpart")
learner <- po("encode") %>>% po("scale") %>>% po("learner",learner) # preprocessing
learner <- GraphLearner$new(learner) #applying learner on a graph in mlr3pipelines
filter <- flt("importance",learner = learner) #using filter for variable importance
filter$calculate(task)
#Error:
Error in learner$importance() : attempt to apply non-function
但是当我运行上面的代码时,没有预处理,它可以工作:
task <- tsk("iris")
learner <- lrn("classif.rpart")
filter <- flt("importance",learner = learner)
filter$calculate(task)
as.data.table(filter)
#Results:
feature score
1: Petal.Width 88.96940
2: Petal.Length 81.34496
3: Setal.Length 54.09606
4: Sepal.Width 36.01309
那么,怎么了?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。