svm工具箱快速入手简易教程

首先svm是用来做分类的,是一种有监督的分类器.

什么是有监督的呢?就是说在你给我一个数据集让我做分类之前.我已经有一些经验数据了.即要先进行学习,再进行分类.

这里就有了训练集和测试集.先用训练集来训练分类器.然后把测试数据输入分类器让分类器来进行分类.

具体的svm分类器的原理在此不作讨论.

这里我有下载http://wenku.baidu.com/view/5be71ecc0508763231121257.html来理解svm是怎么操作的.其代码为

 load fisheriris
data = [meas(:,), meas(:,)];
groups = ismember(species,'setosa');
[train, test] = crossvalind('holdOut',groups);
cp = classperf(groups);
svmStruct = svmtrain(data(train,:),groups(train),'showplot',true);
classes = svmclassify(svmStruct,data(test,:),'showplot',true);
classperf(cp,classes,test);
cp.CorrectRate

第一行是读入matlab数据集

第二行是仅分析2列,对根据这2列的数据进行分类

第三行是生成组号.原有的组名是setosa,versicolor,virginica.这里进行分类是分成2类,是setosa(组号为1)以及非setosa(组号为0)

第四行是生成交叉检验的数据.即决定哪一些行作为测试集,哪一些行作为训练集.其中train中为1的元素表示训练集,test中为1的元素表示测试集

第五行是生成了一个评估分类结果的对象

第六行使用训练集的数据生成svm分类器

第七行使用这个分类器对测试集的数据进行分类.结果放在classes中

第八行评估分类的性能,把评估器,分类结果和测试集的索引作为参数进行评估

第九行得出评估结果

上一篇:UIImage两种初始化的区别


下一篇:Servlet的三个域对象