我刚刚开始尝试mlr
包,我喜欢训练模型的易用性以及它可以做的所有其他事情。
但是,我被困在feature selection
这段代码的最后一部分。我打算做的是应用variance
方法generateFilterValuesData()
,我知道方差只能应用于数值,因此我试图探索是否有一个inbuilt parameter
可以允许数据按数据类型进行子集化,然后函数可以应用于下面的任务。
library(data.table)
library(dplyr)
library(mlr)
data(BreastCancer, package = "mlbench")
df = BreastCancer
df$Id = NULL #unimportant feature
names(df) <- tolower(names(df))
cols = c(1:5)
df[,cols] = sapply(cols, function(x){df[,x] = as.integer(df[,x])})
glimpse(df)
classif.task= makeClassifTask(id = 'BreastCancer',data = df,
target = 'class')
#task is created
classif.task
#imputation
imp = impute(classif.task,cols = list(bare.nuclei = imputeMode()))
#feature importance
feature.imp = generateFilterValuesData(task = imp$task,
method = c('variance'))