使用 R 的 ROC 曲线图(错误代码:预测变量必须是数字或有序的)
ROC Curve Plot using R (Error code: Predictor must be numeric or ordered)
我正在尝试使用 pROC 和如下两列制作 ROC 曲线:(该列表超过 300 个条目)
Actual_Findings_%
Predicted_Finding_Prob
0.23
0.6
0.48
0.3
0.26
0.62
0.23
0.6
0.48
0.3
0.47
0.3
0.23
0.6
0.6868
0.25
0.77
0.15
0.31
0.55
我尝试使用的代码是:
roccurve<- plot(roc(response = data$Actual_Findings_% <0.4, predictor = data$Predicted_Finding_Prob >0.5),
legacy.axes = TRUE, print.auc=TRUE, main = "ROC Curve", col = colors)
阳性结果的阈值是
Actual_Findings_% <0.4
和
Predicted_Finding_Prob >0.5
(即为真阳性,actual_finding_% 将小于 0.4,而 predicted_finding_prob 将大于 0.5)
但是当我尝试绘制这条 roc 曲线时,出现错误:
"Setting levels: control = FALSE, case = TRUE
Error in h(simpleError(msg, call)) :
error in evaluating the argument 'x' in selecting a method for function 'plot': Predictor must be numeric or ordered."
如有任何帮助,我们将不胜感激!
这应该有效:
data <- read.table( text=
"Actual_Findings_% Predicted_Finding_Prob
0.23 0.6
0.48 0.3
0.26 0.62
0.23 0.6
0.48 0.3
0.47 0.3
0.23 0.6
0.6868 0.25
0.77 0.15
0.31 0.55
", header=TRUE, check.names=FALSE )
library(pROC)
roccurve <- plot(
roc(
response = data$"Actual_Findings_%" <0.4,
predictor = data$"Predicted_Finding_Prob"
),
legacy.axes = TRUE, print.auc=TRUE, main = "ROC Curve"
)
现在很重要 - roc 曲线向您展示了当您改变分类阈值时会发生什么。所以你做错的一件事就是去执行一个,通过设置预测 < 0.5
然而,这确实提供了完美的分离,我想这很好。 (虽然不利于教育目的。)
我正在尝试使用 pROC 和如下两列制作 ROC 曲线:(该列表超过 300 个条目)
Actual_Findings_% | Predicted_Finding_Prob |
---|---|
0.23 | 0.6 |
0.48 | 0.3 |
0.26 | 0.62 |
0.23 | 0.6 |
0.48 | 0.3 |
0.47 | 0.3 |
0.23 | 0.6 |
0.6868 | 0.25 |
0.77 | 0.15 |
0.31 | 0.55 |
我尝试使用的代码是:
roccurve<- plot(roc(response = data$Actual_Findings_% <0.4, predictor = data$Predicted_Finding_Prob >0.5),
legacy.axes = TRUE, print.auc=TRUE, main = "ROC Curve", col = colors)
阳性结果的阈值是 Actual_Findings_% <0.4 和 Predicted_Finding_Prob >0.5 (即为真阳性,actual_finding_% 将小于 0.4,而 predicted_finding_prob 将大于 0.5)
但是当我尝试绘制这条 roc 曲线时,出现错误:
"Setting levels: control = FALSE, case = TRUE
Error in h(simpleError(msg, call)) :
error in evaluating the argument 'x' in selecting a method for function 'plot': Predictor must be numeric or ordered."
如有任何帮助,我们将不胜感激!
这应该有效:
data <- read.table( text=
"Actual_Findings_% Predicted_Finding_Prob
0.23 0.6
0.48 0.3
0.26 0.62
0.23 0.6
0.48 0.3
0.47 0.3
0.23 0.6
0.6868 0.25
0.77 0.15
0.31 0.55
", header=TRUE, check.names=FALSE )
library(pROC)
roccurve <- plot(
roc(
response = data$"Actual_Findings_%" <0.4,
predictor = data$"Predicted_Finding_Prob"
),
legacy.axes = TRUE, print.auc=TRUE, main = "ROC Curve"
)
现在很重要 - roc 曲线向您展示了当您改变分类阈值时会发生什么。所以你做错的一件事就是去执行一个,通过设置预测 < 0.5
然而,这确实提供了完美的分离,我想这很好。 (虽然不利于教育目的。)