load heart_scale.mat
model = svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
[predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst,model);
[X,Y] =perfcurve(heart_scale_label,dec_values,'1');
%[X,Y] = perfcurve(labels,scores,posclass,'param1', val1,'param2',val2,...)
%labels:目标标签 scores:决策值 posclass:正类标签
%'param'和val可以定义X和Y的输出值,具体可以看函数帮助,默认是定义X轴为FPR,Y轴为TPR
plot(X,Y),xlabel('FPR'),ylabel('TPR');%输出ROC曲线
[X,Y] =perfcurve(heart_scale_label,dec_values,'1','xCrit','FPR','yCrit','FNR');
%重新定义输出值,'xCrit','FPR'表示定义X输出为FPR=FP/(TN+FP),这里其实就是默认值
%'yCrit','FNR'表示定义y输出为FNR=FN/(TP+FN)
figure,plot(X,Y),xlabel('fall'),ylabel('miss');%输出DET曲线
  
   利用
  
  
   perf
  
  
   curve
  
  
   函数
  
  
   画
  
  
   roc
  
  和
  
   det
  
  等
  
   评价
  
  
   曲线
  
  -matlab人工智能模式识别
  
   利用
  
  
   perf
  
  
   curve
  
  
   函数
  
  
   画
  
  
   ROC
  
  和
  
   DET
  
  等
  
   评价
  
  
   曲线
  
  论坛里已经有很多
  
   画
  
  分类
  
   评价
  
  
   曲线
  
  的方法了,不过我发现直接用
  
   perf
  
  
   curve
  
  
   函数
  
  
   画
  
  比较简单方便,还可以扩展到
  
   画
  
  更多其他的分类
  
   曲线
  
  具体使用方法可以参考
  
   perf
  
  
   curve
  
  帮助复制内容到剪贴板代码:loadheart_scale.matmodel=svmtrain(...
                                    我们通常使用
  
   ROC
  
  
   曲线
  
  来
  
   评价
  
  分类结果的好坏,在MATLAB中绘制该
  
   曲线
  
  其实也十分容易。我们让label表示真实的类别,output表示预测的类别,那么调用:
[XRF,YRF,TRF,AUCRF] =
  
   perf
  
  
   curve
  
  (label,output,1);
之后运行:
  
   plot
  
  (XRF,YRF)
即可得到
  
   ROC
  
  
   曲线
  
  ,该
  
   函数
  
  中还有一个参数,也就是正类的标签(positive class label),该变量是一个常数,可以为数值,也可是是字符串等,需要指定一下。上面的例子中,我们输出的结果和标签都是0或1的
Compute Receiver Operating Characteristic (
  
   ROC
  
  )
  
   curve
  
  or other
  
   perf
  
  ormance
  
   curve
  
  for classifier output
expand all in page
                                    如果 X 和 Y 使用“
  
   FP
  
  R”或“TPR”,则此版本与 matlab 提供的版本相同,但略有不同。 我没有使用乏味的“arrayfun”,而是使用了矢量 cumsum
  
   函数
  
  。
 这是一个比较测试N = 1e5; 分数 = [rand(N,1); rand(N,1)-1]; 标签 = [ones(N,1); 零(N,1)];
 抽动;
  
   perf
  
  
   curve
  
  (标签,分数,1); 目录抽动;
  
   perf
  
  
   curve
  
  2(标签,分数,1); 目录
经过的时间是 17.614076 秒。 经过的时间是 0.164707 秒。
 我希望你会发现它很有用。
                                    本帖最后由 翻腾的鱼 于 2014-10-7 10:39 编辑使用的是32位matlab R2014a。
  
   利用
  
  SVM做多分类,想要
  
   利用
  
  
   perf
  
  
   curve
  
  
   函数
  
  
   画
  
  出
  
   roc
  
  图,计算AUC然后对分类结果进行
  
   评价
  
  。问题代码如下:model = svmtrain(train_wine_labels, train_wine, '-c 2 -g 1 -b 1');[predict_label, accuracy,...
C = BSXFUN(FUNC,A,B)
二元单态展开
  
   函数
  
  (Binary Singleton Expansion Function)
将
  
   函数
  
  handle func指定的逐元素二进制操作应用于数组a和b,并启用单例扩展。func可以是以下内置
  
   函数
  
  之一
Compute z(x, y) = x.*sin(y) on a grid:
>> x=1:10;
                                    模式识别
  
   评价
  
  方法
  
   ROC
  
  
   曲线
  
  
   DET
  
  
   曲线
  
  
   FP
  
  PW
  
   FP
  
  PI etc.
因个人在做模式识别相关的工作,模式识别算法最终的性能
  
   评价
  
  是关键。但苦于网上很难找到具体、详细的
  
   评价
  
  流程、方法以及代码,所以本人打算近期准备如题所示
  
   评价
  
  方法的整理工作,到时候会奉上方法介绍、基础代码(matlab 版),以帮助更多像我这样对这些方法有些迷茫的人。
                                    根据决策值和真实标签
  
   画
  
  
   ROC
  
  
   曲线
  
  ,同时计算AUC的值function auc =
  
   roc
  
  _
  
   curve
  
  (deci,label_y) %%deci=wx+b, label_y, true label[val,ind] = sort(deci,‘descend‘);
  
   roc
  
  _y = label_y(ind);stack_x = cumsum(
  
   roc
  
  _y == -1)/sum(
  
   roc
  
  _y == -1);st...