支持向量机(SVM)的实现

支持向量机(SVM)的实现

ID:47544366

大小:535.06 KB

页数:20页

时间:2020-01-14

支持向量机(SVM)的实现_第1页
支持向量机(SVM)的实现_第2页
支持向量机(SVM)的实现_第3页
支持向量机(SVM)的实现_第4页
支持向量机(SVM)的实现_第5页
资源描述:

《支持向量机(SVM)的实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、模式识别课程大作业报告——支持向量机(SVM)的实现姓名:学号:专业:任课教师:研究生导师:内容摘要支持向量机是一种十分经典的分类方法,它不仅是模式识别学科中的重要内容,而且在图像处理领域中得到了广泛应用。现在,很多图像检索、图像分类算法的实现都以支持向量机为基础。本次大作业的内容以开源计算机视觉库OpenCV为基础,编程实现支持向量机分类器,并对标准数据集进行测试,分别计算出训练样本的识别率和测试样本的识别率。本报告的组织结构主要分为3大部分。第一部分简述了支持向量机的原理;第二部分介绍了如何利用OpenCV来实现支持向

2、量机分类器;第三部分给出在标准数据集上的测试结果。一、支持向量机原理概述在高维空间中的分类问题实际上是寻找一个超平面,将两类样本分开,这个超平面就叫做分类面。两类样本中离分类面最近的样本到分类面的距离称为分类间隔。最优超平面指的是分类间隔最大的超平面。支持向量机实质上提供了一种利用最优超平面进行分类的方法。由最优分类面可以确定两个与其平行的边界超平面。通过拉格朗日法求解最优分类面,最终可以得出结论:实际决定最优分类面位置的只是那些离分类面最近的样本。这些样本就被称为支持向量,它们可能只是训练样本中很少的一部分。支持向量如图

3、1所示。图1图1中,H是最优分类面,H1和H2别是两个边界超平面。实心样本就是支持向量。由于最优超平面完全是由这些支持向量决定的,所以这种方法被称作支持向量机(SVM)。以上是线性可分的情况,对于线性不可分问题,可以在错分样本上增加一个惩罚因子来干预最优分类面的确定。这样一来,最优分类面不仅由离分类面最近的样本决定,还要由错分的样本决定。这种情况下的支持向量就由两部分组成:一部分是边界支持向量;另一部分是错分支持向量。对于非线性的分类问题,可以通过特征变换将非线性问题转化为新空间中的线性问题。但是这样做的代价是会造成样本维

4、数增加,进而导致计算量急剧增加,这就是所谓的“维度灾难”。为了避免高维空间中的计算,可以引入核函数的概念。这样一来,无论变换后空间的维数有多高,这个新空间中的线性支持向量机求解都可以在原空间通过核函数来进行。常用的核函数有多项式核、高斯核(径向基核)、Sigmoid函数。二、支持向量机的实现OpenCV是开源计算机视觉库,它在图像处理领域得到了广泛应用。OpenCV中包含许多计算机视觉领域的经典算法,其中的机器学习代码部分就包含支持向量机的相关内容。OpenCV中比较经典的机器学习示例是“手写字母分类”。OpenCV中给出

5、了用支持向量机实现该示例的代码。本次大作业的任务是研究OpenCV中的支持向量机代码,然后将其改写为适用于所有数据库的通用程序,并用标准数据集对算法进行测试。本实验中使用的OpenCV版本是2.4.4,实验平台为VisualStudio2010软件平台。OpenCV读取的输入数据格式为“.data”文件。该文件记录了所有数据样本的特征向量和标签。OpenCV自带的“letter-recognition”数据集是手写字母数据集。其中共包含20000个样本,前16000个用来训练,后4000个用来测试。样本是16维的特征向量。

6、每条样本在文件中按行存放。每行共有17个字段,第1个字段是样本的标签,以字符形式给出;后面16个字段分别是样本的16个特征,以数字形式给出。所有字段之间均以逗号分隔。图2图2中展示了“.data”文件中样本的存储样式。自行生成“.data”文件的过程十分简单。只需要新建一个“.txt”文件,对其内容进行修改之后,直接把后缀改为“.data”即可。在OpenCV给出的支持向量机示例程序中,可调参数大约有十多个,这些参数的调整比较复杂。为了方便使用该程序,可以将其中重要的参数从程序段中挑选出来,并制作宏定义。这些重要参数包括:

7、总样本个数、用于训练的样本个数(总样本个数-训练样本个数=测试样本个数)、特征向量的维数、选取的核函数类型。可调参数如图3所示:图3在更换新的数据集时,只需要在宏定义部分修改“PATH”后的路径即可,其他参数的修改也都在这里进行,无需再到代码段内进行修改。其中,宏定义“KERNEL”用来确定SVM采用何种核函数。执行程序后,可以显示出训练样本和测试样本的识别率。通过将程序中分类数组的值输出,还可以在原有程序基础上添加显示测试样本标签的功能。对“letter-recognition”数据集进行分类得到的结果如图4所示:图4图

8、4展示了4000个测试样本标签和训练样本识别率以及测试样本识别率。可以观察到训练样本的识别率为64.36%,测试样本的识别率为60.75%。将图4中展示的测试样本标签与“.data”文件中的标签对比,可以直观地观察到哪个数据判断错误。图5展示了程序输出的测试样本标签与“.data”文件中标签的对应关系。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。