3

我使用 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'

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

4

2 回答 2

3

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

于 2013-02-12T09:57:50.123 回答
2

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

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

p@x.values[[1]]

提取向量。

于 2013-02-12T09:55:10.930 回答