糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > 线性SVM 线性可分SVM与核函数

线性SVM 线性可分SVM与核函数

时间:2020-01-20 16:23:44

相关推荐

线性SVM 线性可分SVM与核函数

SVM即支持向量机(support vector machine),是一种分类算法。SVM 适合中小型数据样本、非线性、高维的分类问题。它将实例的特征向量映射为空间中的一些点。如:

而SVM要做的事情就是找到那么一条线, “最好地” 区分这两类点,以后有了新的点,这条线也能做出很好的分类。划分的线是可以有无数条的。

那么哪一条线是最好的呢。SVM 将会寻找可以区分两个类别并且能使间隔(margin or gap)最大的划分超平面。比较好的划分超平面,样本局部扰动时对它的影响最小、产生的分类结果最鲁棒、对未见示例的泛化能力最强。

对于任意一个超平面,其两侧数据点都距离它有一个最小距离(垂直距离),这两个最小距离的和就是间隔。比如下图中两条虚线构成的带状区域就是 gap,虚线是由距离中央实线最近的两个点所确定出来的(也就是由支持向量决定)。

从上图可以看出,虚线上的点到划分超平面的距离都是一样的,实际上只有这几个点共同确定了超平面的位置,因此被称作 “支持向量(support vectors)”,“支持向量机” 也是由此来的。

线性SVM

对于这个划分的超平面,我们可以给一个方程:

其中为各个特征的权值。为列向量。b为位移值。

点到面的距离为

那么很明显有

为样本i的预测值(-1或者1,做符号变换)。d为支撑向量到超平面的距离。我们假设d为

使得所有的的点满足

我们所需要的超平面则是需要最大化最小间隔,即:

带入上面的式子,则需要求:

我们转换下则求:

与约束条件

我们这里就可以运用拉格朗日乘子法得:

原问题是极小极大问题

原始问题的对偶问题,是极大极小问题

将其对于求偏导冰等于0得:

带入L得

与约束

接下来求对于α的极大,添加负号即求

继续带入拉格朗日乘子得最后的

求出最后的超平面。

线性可分SVM

线性svm可以保证在训练集上分类完全正确,但是不一定分类完全正确的超平面就是最好的

一种是样本数据本身线性不可分

另一种是下图这种情况,实线是线性svm分的超平面,可是我们还是感觉虚线可能分的更好,因为上面那个点很有可能是噪音点。

我们的处理方法是增加松弛因子≥0,使函数间隔加上松弛变量大于等于1。这样,约束条件变成

目标函数:

C为可以调整的超参数,当无限接近与无穷大时,就等于线性svm

这时候拉格朗日函数为

求偏导得

带入式子中得到:

然后求对于α的极大值

构造对偶问题,解约束最优化:

最后得到超平面:

要注意的是:计算b*时,需要使用满足条件0<α

实践中往往取支持向量的所有值取平均作为b* 。

SVM的损失函数为Hinge loss

意义则为,点相对于超平面的距离,大于1则没有损失,小于1则小多少损失多少(支撑向量到超平面的距离为1)

核函数

还有很多情况是样本点无法被直线分,即使使用松弛因子效果也很差。这个时候我们便选择使用核函数,核函数的作用是将原本线性不可分的样本映射到一个高维空间内。从而在核空间可分。

因为最后求超平面的时候我们使用的是两个向量的内积,所以核函数即为定义两个向量的内积。常用的核函数有

多项式核函数:

高斯核函数:

Sigmod核函数:

如果觉得《线性SVM 线性可分SVM与核函数》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。