Я создам несколько примеров данных, поскольку у нас нет никаких данных по вашему вопросу:
library(caret)
# example data
df <- data.frame("x" = rnorm(100),
"fac" = as.factor(sample(c(rep("A", 30), rep("B", 35), rep("C", 35)))),
"y" = as.numeric((rpois(100, 4))))
# model
model <- train(y ~ ., method = "glm", data = df)
# feature importance
varImp(model, scale = TRUE)
Это возвращает важность функции, которую вы не хотите указывать в своем вопросе:
# glm variable importance
#
# Overall
# facB 100.00
# facC 13.08
# x 0.00
Вы можете преобразовать факторные переменные в numeri c и сделать то же самое:
# make the factor variable numeric
trans_df <- transform(df, fac = as.numeric(fac))
# model
trans_model <- train(y ~ ., method = "glm", data = trans_df)
# feature importance
varImp(trans_model, scale = TRUE)
Это возвращает важность для «общей» функции:
# glm variable importance
#
# Overall
# x 100
# fac 0
Однако, Я не знаю, приводит ли операция as.numeric()
к факторной переменной к другой важности функции, когда мы запускаем varImp(trans_model, scale = TRUE)
.
Кроме того, проверьте этот поток SO if вы обнаружите, что указанные c факторные / символьные переменные являются проблемными c при преобразовании в числа c.