MATALB中SVM工具箱快速入手简易教程(常出现的错误解决办法)

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

MATALB中SVM工具箱快速入手简易教程(常出现的错误解决办法)

——胡matlab 自带的函数(matlab帮助文件里的例子)[只

有较新版本的matlab中有这两个SVM的函数]

(本人使用的是2012版本)

svmtrain svmclassify

=====简要语法规则====

svmtrain

Train support vector machine classifier

Syntax

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, ...) 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, ...)

---------------------

svmclassify

Classify data using support vector machine

Syntax

Group = svmclassify(SVMStruct, Sample)

Group = svmclassify(SVMStruct, Sample, 'Showplot', ShowplotValue)

实例操作:

在命令行中输入一下内容:(或者新建一个脚本文件)

警告:

如果你之前安装过libsvm工具箱,则一下程序是不能执行的,并且会出现错误(如下图)。

出现错误的原因及解决办法:

原因:当函数运行时调用的svmtrain svmclassify是你安装的libsvm 中的函数并不是MATLAB自带的。

解决办法:将安装时加载的libsvm的路径暂时移除。打开setpath,remove所有惯有libsvm的路径,save!

OK!

load fisheriris

%载入matlab自带的数据[有关数据的信息可以自己到UCI查找,这是UCI的经典数据之一],得到的数据如下图:

tu1

其中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);

%随机选择训练集合测试集[有关crossvalind的使用请自己help一下]

其中cp作用是后来用来评价分类器的.

svmStruct = svmtrain(data(train,:),groups(train),'showplot',true);

%使用svmtrain进行训练,得到训练后的结构svmStruct,在预测时使用.

训练结果如图:

tu2

classes = svmclassify(svmStruct,data(test,:),'showplot',true);

%对于未知的测试集进行分类预测,结果如图:

tu3

classperf(cp,classes,test);

cp.CorrectRate

ans =

0.9867

%分类器效果测评,就是看测试集分类的准确率的高低.

以上就是用MATLAB自带函数分类的方法!

使用libsvm工具箱

安装方法也很简单,解压文件,把当前工作目录调整到libsvm所在的文件夹下,再在set path里将libsvm 所在的文件夹加到里面.然后

在命令行里输入

mex -setup %选择一下编译器

make

这样就可以了.

建议大家使用libsvm工具箱,这个更好用一些.可以进行分类[多类别],预测....

=========

svmtrain

svmpredict

================

Usage

=====

matlab> model = svmtrain(training_label_vector, training_instance_matrix [, 'libsvm_options']);

-training_label_vector:

An m by 1 vector of training labels (type must be double).

-training_instance_matrix:

相关文档
最新文档