Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在使用svm分类时,如何在matlab中获得误差与历次(迭代)图?_Matlab_Svm - Fatal编程技术网

在使用svm分类时,如何在matlab中获得误差与历次(迭代)图?

在使用svm分类时,如何在matlab中获得误差与历次(迭代)图?,matlab,svm,Matlab,Svm,我使用svmtrain来训练我的数据集,并使用svmclassify来预测测试集。我想看看优化过程,错误与时代(迭代)图。我查看了用法和代码,发现没有关于此类问题的信息。我唯一能得到的就是对最大迭代的控制 在使用SVM分类时,如何在matlab中获得误差与历次(迭代)图? 这是我修改的代码。但不是我想要的,我想要每个时代的错误。以前有人做过这样的分析吗?非常感谢。 致以最良好的祝愿 %#加载数据集 加载fisheriris%#加载iris数据集 群=成员(种,'setosa');%#创建一个两

我使用
svmtrain
来训练我的数据集,并使用
svmclassify
来预测测试集。我想看看优化过程,错误与时代(迭代)图。我查看了用法和代码,发现没有关于此类问题的信息。我唯一能得到的就是对最大迭代的控制

在使用SVM分类时,如何在matlab中获得误差与历次(迭代)图?

这是我修改的代码。但不是我想要的,我想要每个时代的错误。以前有人做过这样的分析吗?非常感谢。 致以最良好的祝愿

%#加载数据集
加载fisheriris%#加载iris数据集
群=成员(种,'setosa');%#创建一个两类问题
最大值=210;%#最大迭代次数
ErrVsIter=0(最大值,2);%存储错误数据
%#控制最大迭代次数
对于N=200:最大值
%options.MaxIter=N;
选项=statset('MaxIter',N);
%#5倍交叉验证
k=5;
cvFolds=crossvalind('Kfold',Groups,k);%获得5倍CV的索引
cp=classperf(组);%#初始性能跟踪器
对于i=1:k%#每个折叠
testIdx=(cvFolds==i);%获取测试实例的索引
trainIdx=~testIdx;%#获取索引训练实例
%#在训练实例上训练SVM模型
svmModel=svmtrain(MEA(列车IDX,:)、组(列车IDX)。。。
“选项”、“选项”、“自动缩放”、“真”、“显示图”、“假”、“方法”、“QP”和。。。
“BoxConstraint”、2e-1、“核函数”、“线性”);
%#plotperform(svmModel);
%#使用测试实例进行测试
pred=svmclassify(svmModel,meas(testIdx,:),'Showplot',false);
%#评估和更新性能对象
cp=classperf(cp、pred、testIdx);
结束
%#获取错误率
ErrVsIter(N,1)=N;
ErrVsIter(N,2)=cp.ErrorRate;
结束

绘图(ErrVsIter(1:MaxIterValue,1),ErrVsIter(1:MaxIterValue,2))你做的都是正确的,问题是SVM每次都在寻找解决方案!因此,每个历元的CorrectRate=1,请尝试在代码中键入cp.CorrectRate,以查看它

问题如下:

 Groups = ismember(species,'setosa');          
数据对于SVM来说非常简单

也可以这样画:

plot(ErrVsIter(200:MaxIterValue,1),ErrVsIter(200:MaxIterValue,2));

你能提供一些可运行的例子吗?嗨,本,我添加了一个例子。谢谢你的帮助。