R中的ROC()函数-ROC函数应以哪种预测格式输入

问题描述 投票:2回答:1

我正在尝试计算二进制(0,1)与决策树预测的目标变量的ROC。

当我将预测值设置为二进制时,它给我以下错误:

roc(as.numeric(pred),as.numeric(data $ target))

“设置级别:控制= 0,大小写= 1设置方向:控件

当我将预测值设置为概率时,会给我以下错误:

roc(pred [,2],as.numeric(data $ target))

“ response”具有两个以上的级别。考虑显式设置'levels'或改用'multiclass.roc'设置级别:control = 0.166666666666667,case = 0.232876712328767设置方向:控件

因此,我对于应该将预测设置为哪种格式感到困惑,以便正确计算ROC?为什么我的函数显示这些错误?

提前感谢!

r decision-tree predict roc auc
1个回答
0
投票

如果您查看pROC's roc function documentation,您将看到形式定义具有以下形式:

roc

因此,预测是第二个参数,而不是您使用的第一个参数。因此,您的呼叫应类似于:

## Default S3 method:
roc(response, predictor, [...]

如果忘记了顺序,则可以始终使用命名参数来忽略顺序:

roc(data$target, pred[,2])

还请注意,即使没有必要,甚至也不建议将响应转换为数字矢量,所以我从上面的调用中删除了roc(predictor = pred[,2], response = data$target)

© www.soinside.com 2019 - 2024. All rights reserved.