ROC曲线的绘制

来源:互联网 发布:dvd光盘播放软件 编辑:程序博客网 时间:2024/05/10 02:22

ROC曲线一般用于绘制二分类问题,用于评价分类器、分类算法的性能
ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣

工具:matlab2010b+libsvm-3.20

%训练部分load train.mat train;load train_label.mat train_label;model = svmtrain(train_label,train,'-s 0 -t 2 -b 1');save model.mat model;%测试部分load model.mat model;load test.mat test;load test_label.mat test_label;[predict_label, accuracy , dec_values] = svmpredict(test_labels,test,model,'-b 1');%ROC曲线绘制score = dec_values(:,1);[x,y]=perfcurve(test_labels,score,1);plot(x,y,'-r');legend('hog','location','best');xlabel('假阳性率(False Positive Rate)'); ylabel( '真阳性率(True positive rate)')

解释部分

绘制ROC曲线需要得到分类器对测试样本的概率输出,即分类器认为某个样本具有多大的概率属于正样本或负样本。libsvm中svmpredict函数,需要标记’-b 1’,这样我们可以获得测试样本的概率输出。其值保存在dec_values中。但我们需要取得的是属于正样本的概率输出,所以只需要dec_values中的第一列即可。再使用perfcurve画出ROC曲线。其它分类器的概率输出类似。

理论说明参考http://alexkong.net/2013/06/introduction-to-auc-and-roc/

0 0
原创粉丝点击