0

我刚刚开始尝试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'))
4

1 回答 1

0

你可以这样做subsetTask,例如

subsetTask(iris.task, sapply(getTaskData(iris.task), is.numeric))
于 2018-05-10T15:50:49.573 回答