【问题标题】:varImp Function is not giving proper outputvarImp 函数没有给出正确的输出
【发布时间】:2016-06-15 02:40:58
【问题描述】:

我有 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?该怎么做?

【问题讨论】:

  • 添加参数varImp(VarImpModel, scale=TRUE) 是否得到你想要的输出?
  • varImp.rpart 的帮助表明此方法不使用比例参数## S3 method for class 'rpart': varImp((object, surrogates = FALSE, competes = TRUE, ...))。如果您确定这是您想要的结果,您可以随时自行缩放结果,但如果您这样做,可能会丢失一些对原始值有用的信息?

标签: r r-caret


【解决方案1】:

由于您已经在使用 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

【讨论】:

    猜你喜欢
    • 2013-07-30
    • 2023-01-22
    • 2013-10-23
    • 2018-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多