ROC曲线与多类支持向量机
17日视图(30天)
显示旧的评论
你好所有的,
我绘制ROC曲线SVM多类(3类)的任务。得到错误的位置2”指数超过数组界限(不得超过3)”
错误ROC_SVM(第70行)
成绩=双(得分(:,final_best_SVM。类名+ 1))”;%计算后验概率(分数)
我的代码是
% %绘制ROC曲线SVM
(predictedLabels、分数、成本)=预测(final_best_SVM,有限元分析tures_Testing);
成绩=双(得分(:,final_best_SVM。类名+ 1))”;%计算后验概率(分数)
图(2)
plotroc (dtTest_lab分数)
标题(“SVM ROC曲线”)
接受的答案
Harsha Priya Daggubati
2020年4月7日
你好,
得分矩阵的列数等于你的类,在你的情况下,它是3。因为你是使用在以下线+ 1,这个问题出现。
成绩=双(得分(:,final_best_SVM。类名+ 1)
18岁的评论
Harsha Priya Daggubati
2020年4月7日
编辑:Harsha Priya Daggubati
2020年4月7日
你能试着用这个:
[Xnb, Ynb, Tnb AUCnb] = perfcurve (dtTest_lab,得分(:,final_best_SVM.ClassNames (1)),“真正的”);
情节(Xnb Ynb);
做同样的为每一个类。
kav
2020年4月7日
试着上面的代码有错误
错误使用perfcurve > preparedata(第1270行)
你必须通过分数作为一个向量的浮点值。
错误perfcurve(第393行)
(分数,cls,重量、ncv) = preparedata(分数,cls,重量);
错误ROC_SVM(第99行)
[Xnb, Ynb, Tnb AUCnb] = perfcurve (dtTest_lab,得分(:,final_best_SVM.ClassNames),“真正的”);
kav
2020年4月7日
非常感谢你的时间。但我得到错误
错误使用perfcurve > preparedata(第1282行)
分数的大小不匹配标签的大小。
错误perfcurve(第393行)
(分数,cls,重量、ncv) = preparedata(分数,cls,重量);
如果我发送完整代码会更容易解决吗?
Harsha Priya Daggubati
2020年4月7日
编辑:Harsha Priya Daggubati
2020年4月7日
你好,
我假设的支持向量机训练工作正常。中华民国通常情节TPR Vs玻璃钢,主要是用于二进制分类。扩展为多层次分类必须binarize输出——一个ROC曲线可以得出标签。
所以我想这样做对每个类工作:
[Xnb, Ynb, Tnb AUCnb] = perfcurve (dtTest_lab(1),得分(:,final_best_SVM.ClassNames (1)),“真正的”);
kav
2020年4月7日
再次感谢,我编辑代码。但同样的错误
图
(predictedLabels、分数、成本)=预测(final_best_SVM features_Testing);
[Xnb, Ynb, Tnb AUCnb] = perfcurve (dtTest_lab(1),得分(:,final_best_SVM.ClassNames (1)),“真正的”);
情节(Xnb Ynb);
持有在
[Xnb2, Ynb2 Tnb2 AUCnb2] = perfcurve (dtTest_lab(2),得分(:,final_best_SVM.ClassNames (2)),“真正的”);
情节(Xnb2 Ynb2);
持有在
[Xnb3, Ynb3 Tnb3 AUCnb3] = perfcurve (dtTest_lab(3),得分(:,final_best_SVM.ClassNames (3)),“真正的”);
情节(Xnb3 Ynb3);
包含(的假阳性率)
ylabel (“真阳性率”)
持有从
kav
2020年4月7日
编辑代码,得到如下的错误
图
(predictedLabels、分数、成本)=预测(final_best_SVM features_Testing);
分数=双(得分(:,final_best_SVM.ClassNames));
[Xnb, Ynb, Tnb AUCnb] = perfcurve (dtTest_lab(1),得分(:,final_best_SVM.ClassNames (1)),“真正的”);
情节(Xnb Ynb);
持有在
[Xnb2, Ynb2 Tnb2 AUCnb2] = perfcurve (dtTest_lab(2),得分(:,final_best_SVM.ClassNames (2)),“真正的”);
情节(Xnb2 Ynb2);
持有在
[Xnb3, Ynb3 Tnb3 AUCnb3] = perfcurve (dtTest_lab(3),得分(:,final_best_SVM.ClassNames (3)),“真正的”);
情节(Xnb3 Ynb3);
包含(的假阳性率)
ylabel (“真阳性率”)
持有从
错误使用perfcurve > preparedata(第1282行)
分数的大小不匹配标签的大小。
错误perfcurve(第393行)
(分数,cls,重量、ncv) = preparedata(分数,cls,重量);
错误ROC_SVM(第110行)
[Xnb, Ynb, Tnb AUCnb] = perfcurve (dtTest_lab(1),得分(:,final_best_SVM.ClassNames(1)),“真正的”);
Harsha Priya Daggubati
2020年4月8日
嗨,你指定的目标必须是一个二进制格式(0和1)处理每个类。
图
(predictedLabels、分数、成本)=预测(final_best_SVM features_Testing);
分数=双(得分(:,final_best_SVM.ClassNames));
[Xnb, Ynb, Tnb AUCnb] = perfcurve (classes_Testing = = 1,分数(:,final_best_SVM.ClassNames (1)),“真正的”);
情节(Xnb Ynb);
持有在
[Xnb2, Ynb2 Tnb2 AUCnb2] = perfcurve (classes_Testing = = 2,得分(:,final_best_SVM.ClassNames (2)),“真正的”);
情节(Xnb2 Ynb2);
持有在
[Xnb3, Ynb3 Tnb3 AUCnb3] = perfcurve (classes_Testing = = 3,得分(:,final_best_SVM.ClassNames (3)),“真正的”);
情节(Xnb3 Ynb3);
包含(的假阳性率)
ylabel (“真阳性率”)
持有从
kav
2020年4月8日
我认为它和以前一样的问题。
错误使用网络/ sim(第270行)
输入数据大小不匹配net.inputs {1} .size。
错误ROC_MLP(第79行)
simpleclusterOutputs = sim (netBest features_Training)
更多的答案(0)
一个错误发生
无法完成的行动,因为页面所做的更改。重新加载页面更新状态。
你也可以从下面的列表中选择一个网站
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。