实验三 支持向量机

[代码地址]

(https://github.com/tangyuanzong/ML_SVM)

题目:

模式识别中著名的数据集。本实验通过花萼(sepal)和花瓣(petal)的长和宽,建立SVM分类器来判断样本属于山鸢尾(Iris Setosa)、变色鸢尾(Iris Versicolor)还是维吉尼亚鸢尾(Iris Virginica)。请按要求完成实验。

数据集:

文件iris.txt为该实验的数据集,包含150个样本,对应数据集的每行数据。每行数据包含每个样本的四个特征(按顺序分
鸢尾花数据集(Iris data set)是模别为花萼长度、花萼宽度、花瓣长度、花瓣宽度)和样本的类别信息(Iris Setosa、Iris Versicolor、Iris Virginica中的一种)。

实验要求:

(1)建立SVM分类器并用交叉验证法进行分析。
(2)利用PCA降维,将数据转化为二维,然后绘制出分类决策边界。

具体实现:

交叉验证方法的选取:

在机器学习里,通常来说我们不能将全部用于数据训练模型,否则我们将没有数据集对该模型进行验证,从而评估我们的模型的预测效果。为了解决这一问题,有许多验证方法。本次实验采用最简单的一种:

The Validation Set Approach

第一种是最简单的,也是很容易就想到的。我们可以把整个数据集分成两部分,一部分用于训练,一部分用于验证,这也就是我们经常提到的训练集(training set)和测试集(test set)。
这里写图片描述

例如,如上图所示,我们可以将蓝色部分的数据作为训练集(包含7、22、13等数据),将右侧的数据作为测试集(包含91等),这样通过在蓝色的训练集上训练模型,在测试集上观察不同模型不同参数对应的MSE的大小,就可以合适选择模型和参数了。但是该方法只用了部分数据进行模型的训练我们都知道,当用于模型训练的数据量越大时,训练出来的模型通常效果会越好。所以训练集和测试集的划分意味着我们无法充分利用我们手头已有的数据,所以得到的模型效果也会受到一定的影响。

我们可以将原始数据集的70%用作训练集,剩下 的30%用作测试集。

线性可分支持向量机:

假设给定一个特征空间上的训练数据集
这里写图片描述

学习的目标是在特征空间中找到一个分离超平面,能将实例分到不同的类。分离超平面对应于方程法向量方程这里写图片描述它由法向量w和截距b决定,可用(w,b) 来表示。分离超平面将特征空间划分为两部分,一部分是正类,一部分是负类。法向量指向的一侧为正类,另一侧为负类。

一般地,当训练数据集线性可分时,存在无穷个分离超平面可将两类数据正确分开。感知机利用误分类最小的策略,求得分离超平面,不过这时的解有无穷多个。线性可分支持向量机利用间隔最大化求最优分离超平面,这时,解是唯一的。

给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为:
这里写图片描述
以及相应的分类决策函数 :
这里写图片描述

称为线性可分支持向量机。

考虑如图所示的二维特征空间中的分类问题。图中“。”表示正例,“x ”表示负例。训练数据集线性可分,这时有许多直线能将两类数据正确划分。线性可分支持向量机对应着将两类数据正确划分并且间隔最大的直线,如图所示。
这里写图片描述

函数间隔和几何间隔

对于给定的训练数据集T和超平面(w,b),定义超平 面(w,b)关于样本点(xi,yi)的函数间隔为
这里写图片描述

定义超平面(w,b)关于训练数据集T的函数间隔为超平面(w,b)关于T中所有样本点样本点.png的函数间隔之最小值,即
这里写图片描述

函数间隔可以表示分类预测的正确性及确信度。但是当我们成比例地改变w和b,例如将它们改为2w和2b,超平面并没有改变,但函数间隔却成为原来的2倍。这一事实启示我们,函数间隔不能用作间隔最大化的标准。

于是得到几何间隔

对于给定的训练数据集T和超平面(w,b),定义超平 面(w,b)关于样本点样本点这里写图片描述的几何间隔为
这里写图片描述

所以同样可以得到数据集的几何间隔为:
这里写图片描述

我们发现函数间隔与集合间隔具有如下关系:

这里写图片描述

当我们成倍地增加w和b的值时,超平面并不会改变。

间隔最大化

支持向量机学习的基本想法是求解能够正确划分训练数据集并且几何间隔最大的分离超平面。对线性可分的训练数据集而言,线性可分分离超平面有无穷多个(等价于感知机),但是几何间隔最大的分离超平面是唯一的。这里的间隔最大化又称为硬间隔最大化(与将要讨论的训练数据集近似线性可分时的软间隔最大化相对应)。

间隔最大化的直观解释是:对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。也就是说,不仅将正负实例点分开,而且对最难分的实例点(离超平面最近的点)也有足够大的确信度将它们分开。这样的超平面应该对未知的新实例有很好的分类预测能力。

1、最大间隔分离超平面

下面考虑如何求得一个几何间隔最大的分离超平面,即最大间隔分离超平面。具体地,这个问题可以表示为下面的约束最优化问题:

这里写图片描述

考虑几何间隔和函数间隔的关系式几何间隔和函数间隔的关系式,可将这个问题改写为
这里写图片描述

我们上面说到:成倍地改变w和b的值,超平面不会改变。因此可以改写该问题,在约束条件的两边同时除以这里写图片描述,使得最右边为1,并且最大化这里写图片描述和最小化这里写图片描述是等价的,因此得到新关系式:
这里写图片描述

这是一个凸二次规划(convex quadratic programming)问题。

支持向量和间隔边界

在线性可分情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量(support vector)。支持向量是使约束条件式这里写图片描述成立的点。

如图所示,在H1和H2上的点就是支持向量。
这里写图片描述

注意到H1和H2平行,并且没有实例点落在它们中间。在H1和H2之间形成一条长带,分离超平面与它们平行且位于它们中央。长带的宽度,即H1和H2之间的距离称为间隔(margin)。间隔依赖于分离超平面的法向量w。H1和H2称为间隔边界。

在决定分离超平面时只有支持向量起作用,而其他实例点并不起作用。如果移动支持向量将改变所求的解;但是如果在间隔边界以外移动其他实例点,甚至去掉这些点,则解是不会改变的。由于支持向量在确定分离超平面中起着决定性作用,所以将这种分类模型称为支持向量机。支持向量的个数一般很少,所以支持向量机由很少的“重要的”训练样本确定。

学习的对偶算法

原始的最优化问题为:

这里写图片描述

首先构建拉格朗日函数(Lagrange function)。为此,对每一个不等式约束不等式约束。引进拉格朗日乘子(Lagrauge multiplier)拉格朗日乘子这里写图片描述得到拉格朗日函数:

这里写图片描述

根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:

这里写图片描述

最后得到等价的最优化问题(证明过程省略):
这里写图片描述

参数的计算:

通过引入拉格朗日函数,我们得到原问题:
这里写图片描述

的等价问题为:

这里写图片描述

w的求解:

这里写图片描述

b的求解:

这里写图片描述

分类超平面:</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机的小粽子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值