【发布时间】:2021-03-01 23:08:34
【问题描述】:
我一直在尝试使用 caret 包中的 varImp 函数计算具有混合比例特征的模型的变量重要性。我尝试了多种方法,包括以数字方式重命名和编码我的关卡。在每种情况下,我都会收到以下错误:
Error in auc3_(actual, predicted, ranks) :
Not compatible with requested type: [type=character; target=double].
以下虚拟示例应说明我的观点(已编辑以反映@StupidWolf 的更正):
library(caret)
#create small dummy dataset
set.seed(124)
dummy_data = data.frame(Label = factor(sample(c("a","b"),40, replace = TRUE)))
dummy_data$pred1 = ifelse(dummy_data$Label=="a",rnorm(40,-.5,2),rnorm(40,.5,2))
dummy_data$pred2 = factor(ifelse(dummy_data$Label=="a",rbinom(40,1,0.3),rbinom(40,1,0.7)))
# check varImp
control.lvq <- caret::trainControl(method="repeatedcv", number=10, repeats=3)
model.lvq <- caret::train(Label~., data=dummy_data,
method="lvq", preProcess="scale", trControl=control.lvq)
varImp.lvq <- caret::varImp(model.lvq, scale=FALSE)
使用不同的模型(如 randomForest 和 SVM)时问题仍然存在。
如果有人知道解决方案或可以告诉我出了什么问题,我将不胜感激。
谢谢!
【问题讨论】:
标签: r r-caret feature-selection