在使用R语言的caret
包训练模型时,试图绘制模型的变量重要性时会出现错误。这种情况在多个挖掘算法(如bayesglm、glm、naive_bayes等)中都会发生。
control <- trainControl(method = "repeatedcv", number = iterations, savePredictions = TRUE, classProbs = TRUE, sampling = "smote");modelFit <- train(formulaToUse, data = dataToAnalyze, method = miningAlgorithm, family = "binomial", preProcess = NULL, trControl = control, tuneLength = 4);plot(varImp(modelFit, scale = TRUE));
结果显示为:
Error in auc_(actual, predicted, ranks) : Not compatible with requested type: [type=character; target=double].
请注意,模型是成功挖掘的,summary(modelFit)
显示了模型的信息。
有什么想法吗?
R版本是3.4.3,caret版本是caret_6.0-79。
回答:
从评论中得知:问题原因是公式中的一个参数基于字符值。解决方案是删除这个参数(或者将其映射/转换为其他数据类型)。