在 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”度量的问题的主要内容,如果未能解决你的问题,请参考以下文章

插入符号中训练数据的 ROC 曲线

R 插入符号保留样本和测试集 ROC

R - Caret - 在模型训练中使用 ROC 而不是准确性

r 添加自定义评估函数度量(matthew相关系数)以评估插入符号模型

在插入符号交叉验证期间计算模型校准?

在 R 中使用插入符号训练模型的时机