在 R 的插入符号训练函数中使用“ROC”度量的问题
Posted
技术标签:
【中文标题】在 R 的插入符号训练函数中使用“ROC”度量的问题【英文标题】:Issue using 'ROC' metric in caret train function in R 【发布时间】:2015-08-10 12:21:33 【问题描述】:我有一个包含两个类的不平衡数据集,因此我认为我可以使用 ROC 作为指标而不是 Accuracy 来使用 caret 包在 R 中调整我的模型(我正在尝试不同的方法,例如 rpart、rf..etc)。我认为我们可以提取概率并使用 ROC 作为决策树类型算法中的指标,也可以使用插入符号。我使用下面插入符号中的数据集来说明我的问题。此数据中有三个类,但为了说明目的,我重新定义并创建了两个类。我不明白为什么下面的代码会出现这个错误(当我改变方法时,我一直收到同样的错误)。感谢您的帮助。
'train.default(x, y, weights = w, ...) 中的错误:无法确定最终调整参数 另外:警告信息: 1:在nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, : 在重新采样的性能测量中存在缺失值。 2:在 train.default(x, y, weights = w, ...) 中:在聚合结果中发现缺失值'
library(caret)
data(iris)
iris$Species=as.character(iris$Species)
iris$Species[which(iris$Species=='virginica')]='versicolor'
iris$Species=as.factor(iris$Species)
fitControl <- trainControl(method = "cv",number=5,classProbs = TRUE,summaryFunction = twoClassSummary)
RF=train(Species ~ ., data = iris, method="rpart",metric="ROC", trControl=fitControl)
【问题讨论】:
上面的代码对我有用。实际错误是什么? 这是我得到的错误。任何方法都不适用于我。我不知道为什么 train.default(x, y, weights = w, ...) 中的错误:无法确定最终调整参数另外:警告消息:1:在nominalTrainWorkflow(x = x, y = y, wts = weights, info = trainInfo, : 在重新采样的性能测量中存在缺失值。2: 在 train.default(x, y, weights = w, ...) 中:在聚合结果中发现缺失值'跨度> 【参考方案1】:这可能是您的 r 和 caret 版本的问题。 更新 caret 包时,请确保您的 r 版本也保持更新。
我之前遇到过这个错误,更新 r 版本解决了。
【讨论】:
以上是关于在 R 的插入符号训练函数中使用“ROC”度量的问题的主要内容,如果未能解决你的问题,请参考以下文章
R - Caret - 在模型训练中使用 ROC 而不是准确性