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...