从ROCR预测对象中检索分类器性能指标

时间:2013-02-12 09:37:48

标签: r

我使用ROCR来测量我的数据集上各种分类算法的性能。虽然我可以使用以下代码示例相对轻松地检索AUC指标:

predictions <- predict(rfmodel, test, type="prob")
pred.obj <- prediction(predictions[,2], data$response)
rfperf <- performance(pred.obj, "tpr","fpr")
print(sprintf("random forest AUC %f", as.numeric(performance(pred.obj,"auc")@y.values)))

我无法检索其他检索其他度量,如精度,召回,f等作为单个值,我可以将其包含在论文的表格中。我尝试过以下方法:

> p <- performance(pred.obj,"prec", "rec")
> as.numeric(p@x.values)
Error: (list) object cannot be coerced to type 'double'

我可以绘制值,但这不是我想要的。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

问题是输出是一个列表。尝试 as.numeric(unlist(p@x.values))

答案 1 :(得分:2)

这与函数perf的返回对象的结构有关。使用str会有所帮助。

p@x.values是一个列表,包含一个元素,它是一个数值向量。 只需使用

p@x.values[[1]]

提取载体。