无法使用 R 中的 pROC 库获得正确的多类 ROC 曲线

阿迪泰亚格

我的预测列有垃圾邮件,不是垃圾邮件,而且无法定义。我使用集成方法堆叠方法来预测它。我能够获得大约 77% 的准确度我能够绘制 ROC 曲线,但我只是认为它不正确。

技术集代码:

# Generate level-one dataset for training the ensemble metalearner
predDF <- data.frame(dataTest.pred, NB_Predictions, RF_Predictions,SVM_Predictions, spam = validation$spam, stringsAsFactors = F)

# Train the ensemble

# define training control
set.seed(1958)
# Train the ensemble
modelStack <- caret::train(spam ~ ., data = predDF, method = "rf")

这是我的 ROC 代码:

#ROC Curve
pre<-predict(modelStack, testPredLevelOne,type='prob')
# AUC measure
modelroc = mean(
  c(as.numeric(multiclass.roc(testPredLevelOne$spam, pre[,1])$auc),
    as.numeric(multiclass.roc(testPredLevelOne$spam, pre[,2])$auc),
    as.numeric(multiclass.roc(testPredLevelOne$spam, pre[,3])$auc)
  )
)

我不认为 AUC 测量也是正确的。

> modelroc
[1] 0.500903

这是我尝试绘制 ROC 曲线的另一种方法。我认为这也行不通。

#Method 2 ROC
predictions<-as.numeric(predict(modelStack, testPredLevelOne))
roc.multi<-multiclass.roc(testPredLevelOne$spam,predictions)
auc(roc.multi)
rs <- roc.multi[['rocs']]
plot.roc(rs[[1]])

sapply(2:length(rs),function(i) lines.roc(rs[[i]],col=i))

这是情节:

在此处输入图片说明

有人可以帮我解决这个问题吗?非常感谢。

冷静的

类之间的平均直接在 pROC 内完成。因此,您只想运行multiclass.roc一次,并使用单个预测向量。通常,您希望使用type="response"代替probs,尽管这可能会因predict您的模型可用功能而异

pre<-predict(modelStack, testPredLevelOne, type='response')

之后,pROC 会为你做平均,这样你就可以直接得到平均 AUC:

multiclass.roc(testPredLevelOne$spam, pre)$auc

请注意,在您的情况下,这将是超过 3 个 AUC 的平均值:垃圾邮件与非垃圾邮件、垃圾邮件与无法定义以及非垃圾邮件与无法定义。这可能无法反映您计算的准确度值。

关于情节,您predict.train从插入符号方法中获得了预测的类通常,为了构建 ROC 曲线,您需要数字化的定量测量。定性测量会产生包含单个点的 ROC 曲线,这通常不是最佳的。不幸的是type="probs",caret 中选项返回 3 个概率向量,这不是 pROC 支持的格式。

另一种方法是更手动地执行计算,选择要测试的正确概率列和级别:

pre<-predict(modelStack, testPredLevelOne,type='prob')
roc(testPredLevelOne$spam, pre[,X], levels = c("not spam", "spam"), plot = TRUE)
roc(testPredLevelOne$spam, pre[,X], levels = c("undefined", " spam"), plot = TRUE, add = TRUE)

最后,您应该仔细审查多类 ROC 分析的相关性。ROC 是为二元分类而设计的,根据我的经验,各种现有多类扩展的相关性有些可疑。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用pROC或ROCR包从R中的预测类概率计算ROC曲线下的面积?

来自分类Dev

在R中编写函数以使用pROC绘制ROC曲线

来自分类Dev

使用for循环和pROC软件包计算R中的多个ROC曲线。在预测变量字段中使用什么变量?

来自分类Dev

ggplot计算中的ROC曲线[r]

来自分类Dev

如何获得ROC曲线?

来自分类Dev

如何处理R(pROC软件包)中的多类ROC分析?

来自分类Dev

如何处理R(pROC程序包)中的多类ROC分析?

来自分类Dev

使用R的glm中的“权重”参数执行逻辑回归的ROC曲线

来自分类Dev

在R中为逻辑回归模型绘制多条ROC曲线

来自分类Dev

根据R中的交叉验证(训练)数据绘制ROC曲线

来自分类Dev

R:pROC软件包:在特定范围内绘制ROC曲线?

来自分类Dev

R获得AUC并同时绘制多条ROC曲线

来自分类Dev

在pROC中与ROC曲线一起打印的AUC极限小数

来自分类Dev

如何在pROC中以置信区间绘制多个roc曲线?

来自分类Dev

如何使用r中的ROCR软件包绘制ROC曲线*仅带有分类列联表*

来自分类Dev

使用ROC曲线为我的R中的加权二元logistic回归(glm)查找最佳截止

来自分类Dev

从scikit-learn(sklearn)中的多类数据计算AUC和ROC曲线?

来自分类Dev

R ggplot添加新的roc曲线

来自分类Dev

对于多类情况,如何使用scikit learning绘制ROC曲线?

来自分类Dev

绘制ROC曲线并在特定截止信息处计算R中的AUC

来自分类Dev

Matlab的ROC曲线3类分类

来自分类Dev

如何使用matplotlib / python绘制ROC曲线

来自分类Dev

如何使用matplotlib / python绘制ROC曲线

来自分类Dev

如何使用 AUC 绘制 ROC 曲线?

来自分类Dev

使用 ImageDataGenerator 时如何生成 ROC 曲线

来自分类Dev

如何获得R中的样条曲线公式?

来自分类Dev

在RFE流程(插入符号)中更改ROC计算(pROC)的默认参数-R

来自分类Dev

在RFE流程(插入符号)中更改ROC计算(pROC)的默认参数-R

来自分类Dev

如何使用R获得dnorm曲线

Related 相关文章

  1. 1

    如何使用pROC或ROCR包从R中的预测类概率计算ROC曲线下的面积?

  2. 2

    在R中编写函数以使用pROC绘制ROC曲线

  3. 3

    使用for循环和pROC软件包计算R中的多个ROC曲线。在预测变量字段中使用什么变量?

  4. 4

    ggplot计算中的ROC曲线[r]

  5. 5

    如何获得ROC曲线?

  6. 6

    如何处理R(pROC软件包)中的多类ROC分析?

  7. 7

    如何处理R(pROC程序包)中的多类ROC分析?

  8. 8

    使用R的glm中的“权重”参数执行逻辑回归的ROC曲线

  9. 9

    在R中为逻辑回归模型绘制多条ROC曲线

  10. 10

    根据R中的交叉验证(训练)数据绘制ROC曲线

  11. 11

    R:pROC软件包:在特定范围内绘制ROC曲线?

  12. 12

    R获得AUC并同时绘制多条ROC曲线

  13. 13

    在pROC中与ROC曲线一起打印的AUC极限小数

  14. 14

    如何在pROC中以置信区间绘制多个roc曲线?

  15. 15

    如何使用r中的ROCR软件包绘制ROC曲线*仅带有分类列联表*

  16. 16

    使用ROC曲线为我的R中的加权二元logistic回归(glm)查找最佳截止

  17. 17

    从scikit-learn(sklearn)中的多类数据计算AUC和ROC曲线?

  18. 18

    R ggplot添加新的roc曲线

  19. 19

    对于多类情况,如何使用scikit learning绘制ROC曲线?

  20. 20

    绘制ROC曲线并在特定截止信息处计算R中的AUC

  21. 21

    Matlab的ROC曲线3类分类

  22. 22

    如何使用matplotlib / python绘制ROC曲线

  23. 23

    如何使用matplotlib / python绘制ROC曲线

  24. 24

    如何使用 AUC 绘制 ROC 曲线?

  25. 25

    使用 ImageDataGenerator 时如何生成 ROC 曲线

  26. 26

    如何获得R中的样条曲线公式?

  27. 27

    在RFE流程(插入符号)中更改ROC计算(pROC)的默认参数-R

  28. 28

    在RFE流程(插入符号)中更改ROC计算(pROC)的默认参数-R

  29. 29

    如何使用R获得dnorm曲线

热门标签

归档