- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SVM代码实例运行结果.pdf
SVM 实例运行
在 Matlab 中带有 SVM 的函数,并且能够自动生成需要的数据,在此主要是熟悉
SVM 算法的使用方法,而对于算法本身的数学原理没有深刻的认识(待深入)。Matlab
中提供了一个 Fisher 关于识别花的种类的数据自动生成方法,使用命令可以直接调用。
以下给出了 Matlab 中使用 SVM 去识别花种类的代码和实验结果:
%%命令 1:load fisheriris
该命令加载待识别的花儿的数据,包括:
1)返回变量 meas:150x4 的矩阵,其中四列表示的是花萼的长度,花萼的宽度,花瓣
的长度,花瓣的宽度。
5.1 3.5 1.4 0.2
4.9 3 1.4 0.2
4.7 3.2 1.3 0.2
4.6 3.1 1.5 0.2
5 3.6 1.4 0.2
5.4 3.9 1.7 0.4
4.6 3.4 1.4 0.3
………..
2)返回变量 species:150x1 的矩阵,其中每 50 行表示一种类别的花,共三类。这个类
别矩阵用来指示返回变量 meas 中每一行数据是啥种类的花。
%%命令 2:data = [meas(:,1), meas(:,2)];
该命令用来取出 meas 矩阵中的第一列和第二列(为简化实验,让观测值为二维)。
%%命令 3:groups = ismember(species,setosa);
该命令取出 species 矩阵中的花分为两类,一类是 setosa(多刚毛)种类的花儿,另一
类是非 setosa 种类的花。并将结果以一个 boolean 值矩阵形式保存在 groups 中。
%%命令 5:[train, test] = crossvalind(holdOut,groups);
该命令将数据平均分为两部分,一部分用作训练,一部分用作测试。
%%命令 6:cp = classperf(groups);
该命令用 cp 保存实验的正确率等的评估,cp 这个变量随着实验的进行不断更新当前的
正确率等评估变量。
%%命令 7:svmStruct = svmtrain(data(train,:),groups(train),showplot,true);
该命令是 SVM 的训练函数,并将最后训练结果保存在 svmStruct 结构中。此条命令执
行的结果得到下面的图示。
4.5
0
1
Support Vectors
4
3.5
3
2.5
2
4 4.5 5 5.5 6 6.5 7 7.5 8
%%命令 8:classes = svmclassify(svmStruct,data(test,:),showplot,true);
该命令,用于测试数据。结果如下:
4.5
0 (training)
文档评论(0)