基于支持向量机的分类法.ppt_第1页
基于支持向量机的分类法.ppt_第2页
基于支持向量机的分类法.ppt_第3页
基于支持向量机的分类法.ppt_第4页
基于支持向量机的分类法.ppt_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、主 讲:周润景 教授 单 位:电子信息工程学院,基于支持向量机的分类法,目 录,支持向量机的简介 支持向量机的基本思想 支持向量机的几个主要优点 多类分类问题 MATLAB实现方法 结论,支持向量机的简介,从观测数据中学习归纳出系统运动规律,并利用这些规律对未来数据或无法观测到的数据进行预测一直是智能系统研究的重点。传统学习方法中采用的经验风险最小化(ERM)虽然误差最小化,但不能最小化学习过程的泛化误差。ERM不成功的例子就是神经网络中的过学习问题。 为此由Vapnik领导的AT另一方向则相反,将多类分类问题逐步转化为两类分类问题,即用多个两类分类支持向量机组成的多类分类器。,多类分类问题,

2、多类分类支持向量机MSVM: 实际应用研究中多类分类问题更加常见,只要将目标函数由两类改为多类(k类)情况,就可以很自然地将BSVM扩展为多类分类支持向量机MSVM,以相似的方式可得到决策函数。,多类分类问题,基于BSVM的多类分类器 (1)1-a-r分类器(One-against-rest classifiers) 这种方案是为每个类构建一个BSVM,如图,对每个类的BSVM,其训练样本集的构成是:属该类的样本为正样本,而不属于该类的其他所有样本为都是负样本,即该BSVM分类器就是将该类样本和其他样本分开。所以在1-a-r分类器过程中训练样本需要重新标注,因为一个样本只有在对应类别的BSVM

3、分类器是是正样本,对其他的BSVM分类器都是负样本。,多类分类问题,(2) 1-a-1分类器(One-against-one classifiers) 对1-a-1分类器,解决k类分类问题就需要个BSVM,因为这种方案是每两个类别训练一个BSVM分类器,如图,最后一个待识别样本的类别是由所有个BSVM“投票”决定的。,多类分类问题,(3)多级BSVM分类器 这种方案是把多类分类问题分解为多级的两类分类子问题,如图,两种典型方案,其中A、B、C、D、E、F分别为7个不同的类,MATLAB实现方法,设计流程:,MATLAB实现方法,matlab中所需调用函数 model=svmtrain(trai

4、n_labels, train_metrix, libsvm_options) -train_labels:训练集的标签 - train_metrix:训练集的属性 - libsvm_options:一些选项参数 - model:训练得到的分类模型 predict_label, accuracy = svmpredict(test_labels, test_metrix, model) -test_labels:测试集的标签 -test_metrix:测试集的属性 - model:由svmtrain得到的分类模型 -predict_label:预测得到的测试集的标签 - accuracy:分类

5、准确率,MATLAB实现方法,在程序开始要将数据归一化处理,归一化的程序如下: function normal = normalization(x,kind) if nargin 2 kind = 2;%kind = 1 or 2 表示第一类或第二类规范化 end m,n = size(x); normal = zeros(m,n); % normalize the data x to 0,1 if kind = 1 for i = 1:m ma = max( x(i,:) ); mi = min( x(i,:) ); normal(i,:) = ( x(i,:)-mi )./( ma-mi

6、);,MATLAB实现方法,end end % normalize the data x to -1,1 if kind = 2 for i = 1:m mea = mean( x(i,:) ); va = var( x(i,:) ); normal(i,:) = ( x(i,:)-mea )/va; end end,MATLAB实现方法,SVM的MATLAB完整源程序如下: clear; clc; load SVM; train_train = train(1:4,:);train(5:11,:);train(12:19,:);train(20:30,:);%手动划4分类 train_tar

7、get = target(1:4);target(5:11);target(12:19);target(20:30); test_simulation = simulation(1:6,:);simulation(7:11,:);simulation(12:24,:);simulation(25:30,:); test_labels = labels(1:6);labels(7:11);labels(12:24);labels(25:30);,MATLAB实现方法,% train_train = normalization(train_train,2); % test_simulation =

8、 normalization(test_simulation,2); % train_train = train_train; % test_simulation = test_simulation; % bestcv = 0; % for log2c = -10:10, % for log2g = -10:10, % cmd = -v 5 -c , num2str(2log2c), -g ,num2str(2log2g);%将训练集分为5类 % cv = svmtrain(train_target, train_train, cmd); % if (cv = bestcv), % bestc

9、v = cv; bestc = 2log2c; bestg = 2log2g; % end,MATLAB实现方法,% end % end % fprintf(best c=%g, g=%g, rate=%g)n,bestc, bestg, bestcv); % cmd = -c , num2str(bestc), -g , num2str(bestg); % model = svmtrain(train_target, train_train, cmd); model = svmtrain(train_target, train_train, -c 2 -g 0.2 -t 1);%核函数 pr

10、edict_label, accuracy = svmpredict(test_labels, test_simulation, model); hold off f=predict_label; index1=find(f=1); index2=find(f=2);,MATLAB实现方法,index3=find(f=3); index4=find(f=4); plot3(simulation(:,1),simulation(:,2),simulation(:,3),o); line(simulation(index1,1),simulation(index1,2),simulation(in

11、dex1,3),linestyle,none,marker,*,color,g); line(simulation(index2,1),simulation(index2,2),simulation(index2,3),linestyle,none,marker,color,y); box;grid on;hold on; xlabel(A); ylabel(B); zlabel(C); title(支持向量机分析图);,MATLAB实现方法,程序运行完之后,出现如图分类结果图。在MATLAB命令窗口出现如下结果:,Accuracy = 96.6667% (29/30) (classification) predict_label = 1 1 1 1 1 1 2 2 2 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论