我绘制了5倍交叉验证数据作为单元数组以完善具有正类= 1的函数。然后它生成了3条曲线,如您在图中所见。我只希望有一条曲线。
[X,Y,T,AUC,OPTROCPT,SUBY,SUBYNAMES] = perfcurve(Actual_label,Score,1);
plot(X,Y)
此处,Actual_label和Score是大小为5 X 1的单元格数组。每个单元格数组的大小为70 X1。1表示正类= 1。
P.S:我使用的是一类SVM,并且'fitSVMPosterior'函数不适用于一类学习(documentation of MATLAB中已经提到过)。因此,此处不能使用后验概率。
答案 0 :(得分:0)
这是可以预期的,因为您正在绘制5折中每一个的ROC曲线。
现在,如果您只想为分类器使用一个ROC,则可以使用5个训练有素的分类器来预测独立测试集的标签,或者可以对5折的后验概率求平均值并得到一个ROC。 / p>
答案 1 :(得分:0)
当计算置信度边界时,X和Y是一个m×3的数组,其中m是固定的X值或阈值(T值)的数量。 Y的第一列包含平均值。第二列和第三列分别包含逐点置信范围的下限和上限。遵循相同约定,AUC还是具有三个元素的行向量。
以上解释摘自MATLAB documentation。