如何使用Matlab进行ROC分析内置SVM(不是LibSVM)

24日视图(30天)
你好,
想有人知道如何使用Matlab进行ROC分析内置支持向量机吗?这个问题问了数百万次在网络上,但是没有回答。
svmStruct = svmtrain (featureSelcted groundTruthGroup,“Kernel_Function”,“rbf”,“方法”,“QP”);
svmClassified = svmclassify (svmStruct featureSelcted);
% resubstitution响应预测的支持向量机分类器
SVMScore? ? ?
%配合得分的概率
[玻璃钢,TPR,用力推,AUC, OPTROCPT] = perfcurve (groundTruth (: 1), SVMScore (: 1), 1);
本质上,我们需要一个函数得到的*分数* SVM分类器 ( SVMScore )。谢谢!
一个。

接受的答案

Ilya
Ilya 2013年3月21日
嗯,这里有一个答案 //www.tianjin-qmedu.com/matlabcentral/answers/64475-does-anybody-have-expertise-with-matlab-svm-classifier 另一个线程的引用。我收集所有的碎片在一个地方。
假设您的类标签1和+ 1,假设您有训练有素的自动定量的默认设置为true,让 支持向量机 训练支持向量机模型的结构,让 Xnew 是你需要的新数据计算软分数。
转变= svm.ScaleData.shift;
规模= svm.ScaleData.scaleFactor;
Xnew = bsxfun (@plus Xnew,转变);
Xnew = bsxfun (@times、Xnew、规模);
sv = svm.万博1manbetxSupportVectors;
alphaHat = svm.Alpha;
偏见= svm.Bias;
kfun = svm.KernelFunction;
kfunargs = svm.KernelFunctionArgs;
f = kfun (sv、Xnew kfunargs {}):“* alphaHat(:) +偏见;
f = - f;%翻转信号得到的分数+ 1类
然后调用 perfcurve (true_labels f (1)
7评论
法拉克Zbeda
法拉克Zbeda 2015年6月3日
嗨Ilya
你这么说是什么意思true_labels当调用perfcurve (true_labels f 1) ?我猜他们是标签测试实例。如果是这样,如何计算?
谢谢
法拉吉

登录置评。

答案(1)

人士Heydarzadeh
人士Heydarzadeh 2016年8月10日
嗨Aaronne,似乎已经回答了你的问题。但有一个短的方法,使用Matlab函数。只是看看第二个例子在以下链接: //www.tianjin-qmedu.com/help/stats/perfcurve.html

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!