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",为什么?
谢谢
当您创建虚拟变量时,因子的一个水平(第一水平)被遗漏了。
编辑 - 您可以在将数据传递到模型之前创建自己的全套虚拟变量。此外,您最好将数据作为一个因素包含在内(通过避免使用公式界面)。通过这种方式,您可以获得每个预测变量的单一重要性值。
我在 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",为什么?
谢谢
当您创建虚拟变量时,因子的一个水平(第一水平)被遗漏了。
编辑 - 您可以在将数据传递到模型之前创建自己的全套虚拟变量。此外,您最好将数据作为一个因素包含在内(通过避免使用公式界面)。通过这种方式,您可以获得每个预测变量的单一重要性值。