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

肝癌

我正在尝试编写一个函数来根据必须预测结果的不同评分系统绘制ROC曲线。

我有一个数据框data_all,其列为“ score_1”和“ Threshold.2000”。我通过以下方法生成了ROC曲线:

plot.roc(data_all$Threshold.2000, data_all$score_1)

我的目标是为许多不同的结果(例如Threshold.1000)和分数(分数score_1,score_2等)生成ROC曲线,但最初只是尝试针对不同的分数进行设置。我的功能如下:

roc_plot <- function(dataframe_of_interest, score_of_interest) {
plot.roc(dataframe_of_interest$Threshold.2000, dataframe_of_interest$score_of_interest)}

我收到以下错误:roc.default(x,预测变量,plot = TRUE,...)中的错误:没有提供有效数据。

如果有人能发现我的功能为什么不起作用,我将不胜感激!我是python编码器,对R有点陌生,并且尝试过许多不同的事情并没有很多运气。非常感谢。

编辑:这是与mtcars相同的示例,因此可重现:

data(mtcars)
plot.roc(mtcars$vs, mtcars$mpg) # --> makes correct graph
roc_plot <- function(dataframe_of_interest, score_of_interest) {
plot.roc(dataframe_of_interest$mpg, dataframe_of_interest$score_of_interest)}

结果:roc.default(x,预测变量,plot = TRUE,...)中的错误:未提供有效数据。roc_plot(mtcars,vs)

安迪·罗明格

这是一种可以按需工作的解决方案(即,让用户为指定不同的值score_of_interest):

library(pROC)
data(mtcars)

plot.roc(mtcars$vs, mtcars$mpg) # --> makes correct graph

# expects `score_of_interest` to be a string!!!
roc_plot <- function(dataframe_of_interest, score_of_interest) {
    plot.roc(dataframe_of_interest$vs, dataframe_of_interest[, score_of_interest])
}

roc_plot(mtcars, 'mpg')
roc_plot(mtcars, 'cyl')

请注意,您的错误不是由不正确的列名引起的,而是由类的不正确使用引起的data.frame注意使用更简单的函数会发生什么:

foo <- function(x, col_name) {
    head(x$col_name)
}
foo(mtcars, mpg)
## NULL

这返回NULL因此,在你原有的功能,当你试图提供plot.rocdataframe_of_interest$score_of_interest你实际上正在吃plot.roc一个NULL

data.frame当该名称存储在对象中时,有几种方法可以从列名中提取列(当您将其作为函数的参数传递时,这就是您要做的事情)。也许最简单的方法是记住adata.frame类似于2D数组类型的对象,因此我们可以使用熟悉的object[i, j]语法,但是我们要求所有行,并按名称指定列,例如mtcars[, 'mpg']如果我们将字符串分配给'mpg'对象,这仍然有效

x <- 'mpg'
mtcars[, x]

这就是我提出解决方案的方式。再进一步,不难想象您将如何同时提供ascore_of_interest和a threshold_of_interest

roc_plot2 <- function(dataframe_of_interest, threshold_of_interest, score_of_interest) {
    plot.roc(dataframe_of_interest[, threshold_of_interest], 
             dataframe_of_interest[, score_of_interest])
}

roc_plot2(mtcars, 'vs', 'mpg')

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

编写函数以计算R中的除数

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

如何使用 AUC 绘制 ROC 曲线?

来自分类Dev

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

来自分类Dev

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

来自分类Dev

在rpy2中绘制R函数曲线

来自分类Dev

ggplot计算中的ROC曲线[r]

来自分类Dev

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

来自分类Dev

在Haskell中更改函数以使用递归

来自分类Dev

在scikit中绘制ROC曲线仅产生3个点

来自分类Dev

如何从给定值绘制rStudios中的ROC曲线?

来自分类Dev

绘制最近质心的 ROC 曲线

来自分类Dev

如何在Excel中编写比率函数以使总和为100?

来自分类Dev

如何在Excel中编写比率函数以使总和为100?

来自分类Dev

如何编写VBA用户定义函数以使用ctrl + shift + enter从IF获取数组参数?

来自分类Dev

索引用户编写的函数以使用map遍历多个变量

来自分类Dev

如何使用Keras神经网络分类器在KFold交叉验证中绘制每个折叠的ROC_AUC曲线

来自分类Dev

当R中缺少参数时,如何调用另一个函数以使用其默认参数?

来自分类Dev

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

来自分类Dev

如何编写一个异步函数以使用Promise.all从所有.csv文件导入数据?

来自分类Dev

在R中绘制逻辑回归曲线

Related 相关文章

  1. 1

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

  2. 2

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

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

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

  7. 7

    编写函数以计算R中的除数

  8. 8

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

  9. 9

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

  10. 10

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

  11. 11

    如何使用 AUC 绘制 ROC 曲线?

  12. 12

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

  13. 13

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

  14. 14

    在rpy2中绘制R函数曲线

  15. 15

    ggplot计算中的ROC曲线[r]

  16. 16

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

  17. 17

    在Haskell中更改函数以使用递归

  18. 18

    在scikit中绘制ROC曲线仅产生3个点

  19. 19

    如何从给定值绘制rStudios中的ROC曲线?

  20. 20

    绘制最近质心的 ROC 曲线

  21. 21

    如何在Excel中编写比率函数以使总和为100?

  22. 22

    如何在Excel中编写比率函数以使总和为100?

  23. 23

    如何编写VBA用户定义函数以使用ctrl + shift + enter从IF获取数组参数?

  24. 24

    索引用户编写的函数以使用map遍历多个变量

  25. 25

    如何使用Keras神经网络分类器在KFold交叉验证中绘制每个折叠的ROC_AUC曲线

  26. 26

    当R中缺少参数时,如何调用另一个函数以使用其默认参数?

  27. 27

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

  28. 28

    如何编写一个异步函数以使用Promise.all从所有.csv文件导入数据?

  29. 29

    在R中绘制逻辑回归曲线

热门标签

归档