我使用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'
我可以绘制值,但这不是我想要的。有什么想法吗?
答案 0 :(得分:3)
问题是输出是一个列表。尝试 as.numeric(unlist(p@x.values))
答案 1 :(得分:2)
这与函数perf的返回对象的结构有关。使用str会有所帮助。
p@x.values是一个列表,包含一个元素,它是一个数值向量。 只需使用
p@x.values[[1]]
提取载体。