varImp函数未提供正确的输出

时间:2016-06-12 06:45:18

标签: r r-caret

我有131个变量,其中我想获得用于建模的重要变量。我对所有变量运行决策树,然后使用caret::varImp计算变量重要性,但输出不合适。下面是我的代码和输出。

VarImpModel <- rpart(Final_Churn_Flag~.,data=InputData, method = 'class')
varImp(VarImpModel)

               Overall
OnnetAmount   35354.00
TotalARPU     188.96940
Onnet_Fix_AR  144.85092
Age            2.59406

期望的输出 - 我想要的是:

               Overall
OnnetAmount   100.00
TotalARPU      88.96
Onnet_Fix_AR   44.85
Age            22.59

为什么它不受100?怎么做?

1 个答案:

答案 0 :(得分:0)

正如您已经在使用caret我建议您在caret::train内训练您的模型,因为这会为您提供更多选项(例如重新取样) - 以及作为一方效果,根据需要缩放变量重要性:

> m <- train(x = iris[,1:4], y = iris[,5], method = 'rpart', trControl = trainControl('repeatedcv', number = 10, repeats = 20))
> varImp(m)

rpart variable importance

             Overall
Petal.Width   100.00
Petal.Length   97.57
Sepal.Length   33.53
Sepal.Width     0.00