6 machine-learning mlr3 data-preprocessing
使用 R的mlr3proba和包运行下面的代码以在预处理数据集上实现算法并执行“可变重要性”,显示错误:mlr3pipelinesmlr3filtersrpart
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)
Run Code Online (Sandbox Code Playgroud)
#Error:
Error in learner$importance() : attempt to apply non-function
Run Code Online (Sandbox Code Playgroud)
但是当我运行上面的代码时,无需预处理,它就可以工作:
task <- tsk("iris")
learner <- lrn("classif.rpart")
filter <- flt("importance", learner = learner)
filter$calculate(task)
as.data.table(filter)
Run Code Online (Sandbox Code Playgroud)
#Results:
feature score
1: Petal.Width 88.96940
2: Petal.Length 81.34496
3: Setal.Length 54.09606
4: Sepal.Width 36.01309
Run Code Online (Sandbox Code Playgroud)
那么,到底出了什么问题呢?
| 归档时间: |
|
| 查看次数: |
174 次 |
| 最近记录: |