0

我正在尝试使用 mlr 包,并希望获得卡方和信息增益值。

library(mlr)
library(FSelector)

data(PimaIndiansDiabetes)
indi <- sample(1:nrow(PimaIndiansDiabetes), 0.6 * nrow(PimaIndiansDiabetes))
train <- PimaIndiansDiabetes[indi,]

trainTask <- makeClassifTask(data = train, target = "diabetes", positive = "pos")

#Feature importance
im_feat <- generateFilterValuesData(trainTask, method = c("information.gain","chi.squared"))
plotFilterValues(im_feat)
im_feat

我不确定变量information.gain和中有两个零的后果。这是否表明我不应该使用它们来建立模型(例如随机森林)?chi.squaredtricepspressure

当我使用

tbl <- table(train$triceps, train$diabetes)
chisq.test(tbl)

它给了我60.473卡方。为什么不是0?chisq和 chi-squared-method from 和有什么区别mlr

4

1 回答 1

0

关于您的第一个问题,根据您应用的特定评估方法,值 0 通常表示该特征不能预测您感兴趣的变量。这并不一定意味着对于特定类型的模型也是如此,因此删除它通常没有意义。除此之外,许多模型在内部执行特征选择(其中一个是随机森林),所以这种预处理通常没有意义,除非你有这么多特征,随机森林需要很长时间来构建模型,例如。

mlr 中的卡方检验chi.sq基于不同的实现;不知道为什么他们没有返回相同的结果。

于 2018-08-03T15:15:39.070 回答