SVM工具箱的使用要点

上传人:枫** 文档编号:431950272 上传时间:2023-09-05 格式:DOC 页数:2 大小:55KB
返回 下载 相关 举报
SVM工具箱的使用要点_第1页
第1页 / 共2页
SVM工具箱的使用要点_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《SVM工具箱的使用要点》由会员分享,可在线阅读,更多相关《SVM工具箱的使用要点(2页珍藏版)》请在金锄头文库上搜索。

1、1模式识别基本概念 模式识别的方法有很多, 常用有:贝叶斯决策、 神经网络、 支持向量机等等。 特别说明的是, 本文所谈及的模式识别是指 “有老师分类 ”,即事先知道训练样本所属的类别, 然后设计分类 器,再用该分类器对测试样本进行识别, 比较测试样本的实际所属类别与分类器输出的类别, 进而统计正确识别率。正确识别率是反映分类器性能的主要指标。 分类器的设计虽然是模式识别重要一环,但是样本的特征提取才是模式识别最关键的环节。 试想如果特征矢量不能有效地描述原样本,那么即使分类设计得再好也无法实现正确分类。 工程中我们所遇到的样本一般是一维矢量,如:语音信号,或者是二维矩阵,如:图片等。 特征提

2、取就是将一维矢量或二维矩阵转化成一个维数比较低的特征矢量, 该特征矢量用于分 类器的输入。 关于特征提取, 在各专业领域中也是一个重要的研究方向, 如语音信号的谐振 峰特征提取,图片的 PCA 特征提取等等。2 神经网络模式识别 神经网络模式识别的基本原理是, 神经网络可以任意逼近一个多维输入输出函数。 以三类分 类:I、II、11为例,神经网络输入是样本的特征矢量,三类样本的神经网络输出可以是1;0;0、0;1;0、0;0;1,也可以是 1;-1;-1、-1;1;-1 、 -1 ;-1 ; 1 。将所有样本中一部分用来训练网络, 另外一部分用于测试输出。通常情况下,正确分类的第 I 类样本的

3、测试输出并不是 1;0;0或 是1;-1;-1,而是如 0.1;0;-0.2的输出。也是就说,认为输出矢量中最大的一个分量是 1,其 它分量是 0 或是 -1 就可以了。3 支持向量机的多类分类 支持向量机的基本理论是从二类分类问题提出的。 我想绝大部分网友仅着重于理解二类分类 问题上了, 我当初也是这样,认识事物都有一个过程。二类分类的基本原理固然重要,我在这里也不再赘述, 很多文章和书籍都有提及。 我觉得对于工具箱的使用而言, 理解如何实现 从二类分类到多类分类的过渡才是最核心的内容。下面我仅以1-a-r 算法为例,解释如何由二类分类器构造多类分类器。二类支持向量机分类器的输出为 1,-1

4、,当面对多类情况时,就需要把多类分类器分解成多 个二类分类器。在第一种工具箱 LS_SVMlab 中,文件 Classification_LS_SVMlab.m 中实现 了三类分类。训练与测试样本分别为n1、n2,它们是3 x 15的矩阵,即特征矢量是三维,训练与测试样本数目均是15;由于是三类分类,所以训练与测试目标x1、x2的每一分量可以是 1、 2或是 3,分别对应三类,如下所示:n1 = rand(3,5),rand(3,5)+1,rand(3,5)+2;x1 = 1*ones(1,5),2*ones(1,5),3*ones(1,5);n2 = rand(3,5),rand(3,5)+

5、1,rand(3,5)+2;x2 = 1*ones(1,5),2*ones(1,5),3*ones(1,5);1-a-r 算法定义:对于 N 类问题,构造 N 个两类分类器,第 i 个分类器用第 i 类训练样本作 为正的训练样本, 将其它类的训练样本作为负的训练样本, 此时分类器的判决函数不取符号 函数sign,最后的输出是 N个两类分类器输出中最大的那一类。在文件 Classification_LS_SVMIab.m 的第 42 行:codefct = code_MOC,就是设置由二类到 多类编码参数。当第 42 行改写成 codefct =code_OneVsAll ,再去掉第 53 行最

6、后的引号,按 F5 运行该文件,命令窗口输出有:codebook =1 -1 -1 -1 1 -1-1 -1 1old_codebook =1 2 3比较上面的 old_codebook 与 codebook 输出,注意到对于第 i 类,将每 i 类训练样本做为正 的训练样本,其它的训练样本作为负的训练样本,这就是 1-a-r 算法定义。这样通过设置 codefct =code_OneVsAll 就实现了支持向量机的 1-a-r 多类算法。其它多类算法也与之雷同, 这里不再赘述。 值得注意的是: 对于同一组样本, 不同的编码方案得到的训练效果不尽相同, 实际中应结合实际数据,选择训练效果最好的

7、编码方案。4 核函数及参数选择 常用的核函数有:多项式、径向基、 Sigmoid 型。对于同一组数据选择不同的核函数,基本 上都可以得到相近的训练效果。 所以核函数的选择应该具有任意性。 对训练效果影响最大是 相关参数的选择,如:控制对错分样本惩罚的程度的可调参数,以及核函数中的待定参数, 这些参数在不同工具箱中的变量名称是不一样的。这里仍以 Classification_LS_SVMlab.m 为 例,在第 38、 39 行分别设定了 gam、 sig2 的值,这两个参数是第63 行 trainlssvm 函数的输入参数。在工具箱文件夹的 trainlssvm.m 文件的第 96、 97 行

8、有这两个参数的定义: % gam : Regularization parameter% sig2 : Kernel parameter (bandwidth in the case of the RBF_kernel)这里 gam 是控制对错分样本惩罚的程度的可调参数, sig2 是径向基核函数的参数。所以在 充分理解基本概念的基础上, 将这些概念与工具箱中的函数说明相结合, 就可以自如地运用 这个工具箱了,因此所以最好的教科书是函数自带的函数说明。 最佳参数选择目前没有十分好的方法,在 Regression_LS_SVMlab.m 的第 46 至 49 行的代码 是演示了交叉验证优化参数方

9、法,可这种方法相当费时。实践中可以采用网格搜索的方法: 如 gam=0:0.2:1 ,sig2=0:0.2:1 ,那么 gam 与 sig2 的组合就有 6x6=36 种,对这 36 种组合训练 支持向量机,然后选择正确识别率最大的一组参数作为最优的 gam 与 sig2 ,如果结果均不 理想,就需要重新考虑 gam 与 sig2 的范围与采样间隔了。5 由分类向回归的过渡LS_SVMlab 、 SVM_SteveGunn 这两个工具箱实现了支持向量机的函数拟合功能。从工具箱 的使用角度来看, 分类与回归的最大区别是训练目标不同。 回归的训练目标是实际需要拟合 的函数值;而分类的训练目标是1,2,N分成N类),再通过适当的编码方案将N类分类转换成多个二类分类。比较文件 Regression_LS_SVMlab.m 与 Classification_LS_SVMlab.m 的 前几行就可以注意到这一点。 另外, 分类算法以正确分类率来作为性能指标, 在回归算法中 通常采用拟合的均方误差 (mean square error, MSE)来作为性能指标。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号