给定使用绘制的ROC曲线plotroc.m
(请参见此处):
libsvm
分类器以选定的(最佳)阈值工作?ROC曲线是通过在y轴上绘制真正分数与在x轴上绘制假正分数所生成的图。因此,ROC曲线上任意点(x,y)的坐标表示特定阈值处的FPR和TPR值。如图所示,我们在ROC曲线上找到了点(x,y),该点对应于该点距图的左上角的最小距离(即,由(0,1)给出)。对应于该点的阈值是所需阈值。抱歉,我不允许放置任何图像,所以无法用数字解释。但是,有关此详细信息,请单击与ROC相关的帮助
其次,在libsvm中,svmpredict函数返回您属于特定类的数据样本的概率。因此,如果该概率(对于阳性类别)大于阈值(从ROC图获得),则可以将样本分类为阳性类别。以下几行可能对您有用:
[pred_labels,~,p] = svmpredict(target_labels,feature_test,svmStruct,'-b 1');
%其中,svmStruct是svmtrain函数返回的结构。
op = p(:,svmStruct.Label==1); % This gives probability for positive
% class (i.e whose label is 1 )
现在,如果此变量“ op”大于阈值,则可以将相应的测试样品分类为阳性。这可以做到
op_labels = op> th; %,其中“ th”是从ROC获得的阈值
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句