1

有没有办法在MATLAB中计算几条ROC 曲线的垂直平均值( http://vicos.fri.uni-lj.si/data/vprsistemi/ROCintro.pdf ) ?我在 MATLAB 指南中发现perfcurve可以做到这一点,但我不知道如何使用它。

4

1 回答 1

4

您可以将检测数组的概率连接成一个矩阵,然后取它们的平均值。假设您的误报概率保存在行向量中PFA,并且您的检测概率值保存在行向量PD1, PD2, ... 中:

PDMatrix = [PD1; PD2; ...];
PDMean = mean(PDMatrix, 1);

这假设您的 ROC 曲线都共享相同的 PFA 值。如果不是这种情况,那么您可以创建一个通用 PFA 数组并使用 interp1 在平均之前重新采样您的 PD 数组。例如,如果您对从 10^-6 到“接近 1”的对数间隔的 PFA 值感兴趣,并且您的 PFA/PD 对具有在此范围内插值的数据,您可以执行类似的操作

PFAResampled = logspace(-6, -.1, 1000);
PD1Resampled = interp1(PFA1, PD1, PFAResampled);
PD2Resampled = interp1(PFA2, PD2, PFAResampled);

之后,您可以连接并取平均值,如上所示。

于 2012-06-09T17:18:23.777 回答