Caret 中的 varImp 不显示预测变量的所有类别

varImp in Caret doesn't sho all the categories for predictor variable

我在 Caret(方法 = "rf")中创建了一个模型,其中包含 3 个预测变量(1 个分类变量,2 个数值变量)和 1 个响应变量(2 个类别)。我的问题是分类预测变量 "origen_flujo"。 Origen_flujo 有这些类别:

>table(origen_flujo)

    Lagos         Llano Precordillera         Valle 
        8            59            12            34 

我运行这个模特:

 rf_fit <- train(clases ~ ., data = data,
            method = "rf",
            preProcess = c("center", "scale"),
            tuneGrid = grid,
            trControl = ctrl,        
            metric= "ROC" 
  )

然后,我在结果模型中应用了 varImp,结果显示:

  > varImp(rf_fit)
                      Overall
 V1                          100.00
 origen_flujoLlano           55.87
 origen_flujoPrecordillera   54.73
 V2                          26.08
 origen_flujoValle            0.00

varImp 不显示 "origen_flujoLagos",为什么?

谢谢

当您创建虚拟变量时,因子的一个水平(第一水平)被遗漏了。

编辑 - 您可以在将数据传递到模型之前创建自己的全套虚拟变量。此外,您最好将数据作为一个因素包含在内(通过避免使用公式界面)。通过这种方式,您可以获得每个预测变量的单一重要性值。