结合ROCR性能对象

时间:2013-05-09 10:04:20

标签: r

我使用performance创建了多个ROCR个对象。其中每个都包含类的aucfpr/tpr值。反过来,它们具有多次测试运行的结果。所以,

length(first.perf.obj@y.values) 

给出了一些> 1.

我可以使用

绘制单个班级的平均值
plot(first.perf.obj, avg="vertical") 

如ROCR手册中所述。我想结合这些对象来计算和绘制它们的全局平均值。像

这样的东西
global.perf.obj <- combine.perf.objects(first.perf.obj, second.perf.obj, third.perf.obj)

有没有一种简单的方法可以做到这一点,还是应该分解每个对象并手动计算值?

1 个答案:

答案 0 :(得分:0)

我回去为全局案例重新创建prediction个对象。

我正在调用prediction函数,如

global.prediction <- prediction(c(cls1.likelihood,
                                      cls2.likelihood,
                                      cls3.likelihood,
                                      cls4.likelihood,
                                      cls5.likelihood),
                                    c(duplicate.cols(cls1.labels, ncol(cls1.likelihood)),
                                      duplicate.cols(cls2.labels, ncol(cls2.likelihood)),
                                      duplicate.cols(cls3.labels, ncol(cls3.likelihood)),
                                      duplicate.cols(cls4.labels, ncol(cls4.likelihood)),
                                      duplicate.cols(cls5.labels, ncol(cls5.likelihood))),
                                    label.ordering=c(FALSE, TRUE))
duplicate.cols

只需构建data.frame个重复标签。

然后,我可以通过例如全局案例得到任何统计数据。 performance(global.prediction, "auc")

它有点慢,但我认为这比尝试组合多个performance对象的值更简单。