ROC曲线的Matlab使用svmtrain
14次浏览(过去30天)
显示旧的注释
你好,我正在处理一个包含x_values的数据集,我称之为SVMdata(17*41的矩阵)和目标值,这些目标值是这些数据分类的标签(“a”为第一组,“b”为第二组)。我想为我的数据获得ROC曲线。我使用了以下代码:
x = SVMdata ';
组= SVMdataS1;
组= ismember(组,“一个”);
将原始数据分成训练和测试数据集
Q = size(x,1);
>> Q1 =楼层(Q*0.80);
>> q2 = q-q1;
ind = randperm(Q);
ind1 = ind(1:Q1);
ind2 = ind(Q1+(1:Q2));
>> x1 = x(ind1,:);
>> t1 =组(ind1,:);
>> x2 = x(ind2,:);
>> t2 =组(ind2,:);
选择= optimset (“麦克斯特”, 1000);
%训练与训练集
支持向量机= svmtrain(x1, t1,...
自动定量的,真的,“Showplot”假的,“方法”,“QP”,...
“Kernel_Function”,多项式的,“polyorder”, 1“quadprog_opts”、选择);
shift = svm.ScaleData.shift;
scale = svm.ScaleData.scaleFactor;
X2 = bsxfun(@plus, X2,shift);
X2 = bsxfun(@times, X2,scale);
sv = svm.万博1manbetxSupportVectors;
alphaHat = svm.Alpha;
偏差= svm.偏差;
kfun = svm.KernelFunction;
kfunargs = svm.KernelFunctionArgs;
f = kfun(sv,x2,kfunargs{:})'*alphaHat(:) +偏差;
F = -f;
[X,Y,T,AUC] = perfcurve(t2,f,1);
当我运行这个程序时,我得到以下错误:错误使用perfcurve>成员(第633行)在输入数据中没有发现阳性类。
错误在perfcurve中(第387行)
[W,subYnames] =成员(标签(已排序),权重(已排序),...
非常感谢你的帮助。最好的