在matlab的perfcurve 函数中,它使用三个参数
[X,Y,T,AUC] = perfcurve(labels,scores,posclass)
标签是事实基础标签,分数由分类器返回,而肯定类则是
在我的情况下,我有两个类别,分别标记为:1(pos类)和2(负calss), 我正在使用SVM分类器,它返回两列的分数,据我了解,第一列是负类,而第二列是正类? (如此处所述)
那么语法如下?
[SVMX,SVMY,T,AUC] = perfcurve(lables, SVM_scores(:,2),1);
答案 0 :(得分:0)
函数fitsvm
中的默认设置,将类别作为第一类定为负数,将第二类作为正序。因此它表示1为负,而2为正:
根据该顺序,语法应为
[SVMX,SVMY,T,AUC] = perfcurve(lables, SVM_scores(:,1),1);
或名称/变量'ClassNames',[2,1],
可用于重新排序类
svmModel = fitcsvm(X,Y,'ClassNames',[2,1],'KernelFunction','RBF');
因此
[SVMX,SVMY,T, AUC] = perfcurve(lables,SVM_scores(:,2),1);