【发布时间】:2019-05-08 03:09:32
【问题描述】:
我可以从“nnet”和“knn”模型中获得可变重要性,但不能从“lda”、“lda2”和“qda”中获得。
我正在使用 varImp()。我已经尝试了所有我能想到的方法,但无法正确理解变量重要性是什么。
这是我训练模型的代码:
lda_model <- train(quality2 ~ .,
data = train_data,
method = "lda",
preProcess = c("center", "scale"),
trControl = trainControl(method = "repeatedcv",
number = 10,
repeats = 2),
importance = TRUE)
这是我在尝试检查重要性时遇到的错误:
> varImp(lda_model)
Error in model.frame.default(formula = y ~ x, na.action = na.omit, drop.unused.levels = TRUE) :
invalid type (list) for variable 'y'
In addition: Warning messages:
1: In mean.default(y, rm.na = TRUE) :
argument is not numeric or logical: returning NA
2: In Ops.factor(left, right) : ‘-’ not meaningful for factors
我知道这意味着它将其视为对象类列表而不是经过训练的模型,并且我已经在 lda_model$finalmodel 和其他模型上进行了尝试,但它仍然无法正常工作。
在使用 lda/qda 时,如何获得关于我的模型表现如何以及哪些变量表现最佳的适当反馈?
【问题讨论】:
-
quality2的值是多少? -
由于没有给出任何信息,我假设
quality2是一个带有数值的因子。尝试将数值转换为字符。 -
抱歉回复缓慢,quality2 是 0 级和 1 级的一个因素
-
我会试着把它改成一个字符
-
@quality2 很遗憾这没有帮助,我尝试了字符、数字和因子数字,但都不起作用