我刚刚开始尝试使用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'))
答案 0 :(得分:0)
您可以使用subsetTask
执行此操作,例如
subsetTask(iris.task, sapply(getTaskData(iris.task), is.numeric))