总结与计划华中科技大学软件与嵌入式系统工程研究中心SVM算法Matlab实现学习讨论cole.xu@foxmail.com总结与计划2华中科技大学软件与嵌入式系统工程研究中心SVM工具箱•SVM工具箱快速入手简易教程(byfaruto)•matlab自带的函数(matlab帮助文件里的例子)–[只有较新版本的matlab中有这两个SVM的函数]总结与计划3华中科技大学软件与嵌入式系统工程研究中心svmtrain(1)•/*Trainsupportvectormachineclassifier*/•SVMStruct=svmtrain(Training,Group)•SVMStruct=svmtrain(...,'Kernel_Function',Kernel_FunctionValue,...)•SVMStruct=svmtrain(...,'RBF_Sigma',RBFSigmaValue,...)•SVMStruct=svmtrain(...,'Polyorder',PolyorderValue,...)•SVMStruct=svmtrain(...,'Mlp_Params',Mlp_ParamsValue,...)总结与计划4华中科技大学软件与嵌入式系统工程研究中心svmtrain(2)•SVMStruct=svmtrain(...,'Method',MethodValue,...)•SVMStruct=svmtrain(...,'QuadProg_Opts',QuadProg_OptsValue,...)•SVMStruct=svmtrain(...,'SMO_Opts',SMO_OptsValue,...)•SVMStruct=svmtrain(...,'BoxConstraint',BoxConstraintValue,...)•SVMStruct=svmtrain(...,'Autoscale',AutoscaleValue,...)•SVMStruct=svmtrain(...,'Showplot',ShowplotValue,...)总结与计划5华中科技大学软件与嵌入式系统工程研究中心svmtrain函数•helpsvmtrain总结与计划6华中科技大学软件与嵌入式系统工程研究中心svmclassify•/*Classifydatausingsupportvectormachine*/•Syntax•Group=svmclassify(SVMStruct,Sample)•Group=svmclassify(SVMStruct,Sample,'Showplot',ShowplotValue)总结与计划7华中科技大学软件与嵌入式系统工程研究中心svmclassify函数•helpsvmclassify总结与计划8华中科技大学软件与嵌入式系统工程研究中心应用实例•matlab自带分类数据集fisheriris,来源于中的risi数据,其数据类别分为3类,setosa,versicolor,virginica.每类植物有50个样本,共150个。–每个样本有4个属性,分别为花萼长,花萼宽,花瓣长,花瓣宽。总结与计划9华中科技大学软件与嵌入式系统工程研究中心载入数据iris•loadfisheriris–%载入matlab自带的数据[有关数据的信息可以自己到UCI查找,这是UCI的经典数据之一],得到的数据如下图:总结与计划10华中科技大学软件与嵌入式系统工程研究中心•其中meas是150*4的矩阵代表着有150个样本每个样本有4个属性描述,species代表着这150个样本的分类.•data=[meas(:,1),meas(:,2)];•%在这里只取meas的第一列和第二列,即只选取前两个属性.总结与计划11华中科技大学软件与嵌入式系统工程研究中心•groups=ismember(species,'setosa');•%由于species分类中是有三个分类:setosa,versicolor,virginica,为了使问题简单,我们将其变为二分类问题:Setosaandnon-Setosa.总结与计划12华中科技大学软件与嵌入式系统工程研究中心•[train,test]=crossvalind('holdOut',groups);•cp=classperf(groups);•%随机选择训练集合测试集,其中cp作用是后来用来评价分类器的.*/总结与计划13华中科技大学软件与嵌入式系统工程研究中心svm训练•svmStruct=svmtrain(data(train,:),groups(train),'showplot',true);•%使用svmtrain进行训练,得到训练后的结构svmStruct,在预测时使用.总结与计划14华中科技大学软件与嵌入式系统工程研究中心svm训练结果图总结与计划15华中科技大学软件与嵌入式系统工程研究中心svm分类预测•classes=svmclassify(svmStruct,data(test,:),'showplot',true);•%对于未知的测试集进行分类预测,结果如图:总结与计划16华中科技大学软件与嵌入式系统工程研究中心svm分类预测结果图总结与计划17华中科技大学软件与嵌入式系统工程研究中心•classperf(cp,classes,test);•cp.CorrectRate•%分类器效果测评,就是看测试集分类的准确率的高低.•ans=•0.9867总结与计划18华中科技大学软件与嵌入式系统工程研究中心欢迎大家批评指正!