MLR程序包:generateFilterValuesData卡方和信息增益

时间:2018-08-03 12:52:17

标签: r chi-squared mlr information-gain

我正在尝试使用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.gainchi.squared的{​​{1}}和triceps中是否有两个零的后果。这是否表明我不应该使用它们来建立模型(例如随机森林)?

当我使用

pressure

它给了我tbl <- table(train$triceps, train$diabetes) chisq.test(tbl) 卡方。为什么不是0? 60.473chisq中的卡方方法有什么区别?

1 个答案:

答案 0 :(得分:0)

关于您的第一个问题,基于您所应用的特定评估方法,值0通常表示该功能无法预测您所关注的变量。这并不一定意味着对于特定类型的模型也是如此,因此删除它通常没有任何意义。除此之外,许多模型都在内部执行特征选择(其中之一是随机森林),因此这种预处理通常是没有意义的,除非您拥有太多的特征,以至于随机森林花费太长时间来构建模型,例如。

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