SVM算法Matlab工具箱实现介绍-2014年09月全解.ppt
文本预览下载声明
SVM算法Matlab实现学习讨论cole.xu@ SVM工具箱 SVM工具箱快速入手简易教程(by faruto) matlab 自带的函数(matlab帮助文件里的例子) [只有较新版本的matlab中有这两个SVM的函数] svmtrain (1) /*Train support vector machine classifier*/ 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, ...) 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, ...) svmtrain函数 help svmtrain svmclassify /*Classify data using support vector machine*/ Syntax Group = svmclassify(SVMStruct, Sample) Group = svmclassify(SVMStruct, Sample, Showplot, ShowplotValue) svmclassify函数 help svmclassify 应用实例 matlab自带分类数据集fisheriris,来源于/ml/ 中的risi数据,其数据类别分为3类,setosa,versicolor,virginica.每类植物有50个样本,共150个。 每个样本有4个属性,分别为花萼长,花萼宽,花瓣长,花瓣宽。 载入数据iris load fisheriris %载入matlab自带的数据[有关数据的信息可以自己到UCI查找,这是UCI的经典数据之一],得到的数据如下图: 其中meas是150*4的矩阵代表着有150个样本每个样本有4个属性描述,species代表着这150个样本的分类. data = [meas(:,1), meas(:,2)]; %在这里只取meas的第一列和第二列,即只选取前两个属性. groups = ismember(species,setosa); %由于species分类中是有三个分类:setosa,versicolor,virginica,为了使问题简单,我们将其变为二分类问题:Setosa and non-Setosa. [train, test] = crossvalind(holdOut,groups); cp = classperf(groups); %随机选择训练集合测试集,其中cp作用是后来用来评价分类器的.*/ svm训练 svmStruct = svmtrain(data(train,:),groups(train),showplot,true); %使用svmtrain进行训练,得到训练后的结构svmStruct,在预测时使用. svm训练结果图 svm分类预测 classes = svmclassify(svmStruct,data(test,:),showplot,true); %对于未知的测试集进行分类预测,结果如图: svm分类预测结果图 classperf(cp,classes,test); cp.CorrectRate %分类器效果测评,就是看测试集分类的准确率的高低. ans = ? ? 0.9867 欢迎大家批评指正! 总结与计划 总结与计划 总结与计划 * *
显示全部