本帖最后由 翻腾的鱼 于 2014-10-7 10:39 编辑
使用的是32位matlab R2014a。利用SVM做多分类,想要利用perfcurve 函数画出roc图,计算AUC然后对分类结果进行评价。
问题代码如下:
model = svmtrain(train_wine_labels, train_wine, '-c 2 -g 1 -b 1');
[predict_label, accuracy,dec_value] = svmpredict(test_wine_labels, test_wine, model,'-b 1');
[X,Y] = perfcurve(test_wine_labels,dec_value,'2')
运行结果如下:
Accuracy = 72.7273% (8/11) (classification)
??? Error using ==> perfcurve>preparedata at 1216
Array of scores must be a vector.
Error in ==> perfcurve at 330
[scores,labels,weights,ncv] = preparedata(scores,labels,weights);
Error in ==> chapter12 at 89
[X,Y] = perfcurve(test_wine_labels,dec_value,'2')
train_wine 和test_wine里面放的是训练和测试的特征数据。train_wine_lablels 和 test_wine_labels 里面放的是分类后的类别