在matlab中使用perfcurve和SVM(fitcsvm)的ROC和AUC

时间:2019-04-05 11:21:49

标签: matlab classification svm roc

在matlab的perfcurve 函数中,它使用三个参数

[X,Y,T,AUC] = perfcurve(labels,scores,posclass)

标签是事实基础标签,分数由分类器返回,而肯定类则是

在我的情况下,我有两个类别,分别标记为:1(pos类)和2(负calss), 我正在使用SVM分类器,它返回两列的分数,据我了解,第一列是负类,而第二列是正类? (如此处所述)

enter image description here

那么语法如下?

[SVMX,SVMY,T,AUC] = perfcurve(lables, SVM_scores(:,2),1);

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);