支持向量机(一)

支持向量机本身是一个二元分类算法,是对感知机模型的一种扩展,现在svm支持线性分类和非线性分类的分类应用,我们也可以讲svm应用在多元分类领域当中。在不考虑集成学习算法,不考虑特定的数据集的时候,在分类算法中SVM可以说是特别优秀的。
在感知机模型之中,我们可以找到多个分类的超平面将数据分开,并且优化时希望所有的点离超平面尽可能的远,但实际上离超平面较远的点已经被正确分类了,所以这个是没有意义的,反而比较关心那些离超平面很近的点,比较容易被分错,所以说我们让离超平面比较近的点尽可能远离这个超平面,我们的svm模型的分类效果就会不错。
线性可分:在数据集中,如果可以找到一个超平面,将两组数据分开,那么这个数据j集叫线性可分的数据。
线性不可分:数据集中,没法找到一个超平面将两组数据分开,那么这个数据就是线性不可分
分割超平面:将数据集分开的直线叫做分割超平面
间隔:数据点到分割超平面的距离称为间隔
支持向量:离分割超平面最近的那些点叫做支持向量。
2、支持向量机支持处理线性可分数据集、非线性可分数据集。
当训练数据线性可分时,通过硬间隔最大化,学习一个线性分类器,即线性可分支持向量机(也称作硬间隔支持向量机)。
当训练数据近似线性可分时,通过软间隔最大化,学习一个线性分类器,即线性支持向量机(也称为软间隔支持向量机)。
当训练数据不可分时,通过使用核技巧以及软间隔最大化,学习一个非线性分类器,即非线性支持向量机。
知识回顾:
(1)、拉格朗日乘子法
在这里插入图片描述
拉格朗日乘子法要求前面的系数不等于零
从上面的公式可以知道,第二个方程求出来的 x ∗ x^* x一定满足上述的限制条件,即h(x*)=0。
(2)kkt条件
在这里插入图片描述
kkt条件的约束中一定是有不等值约束。此时相当于
在这里插入图片描述
蓝色线代表等高线
在这里插入图片描述

即当此时β=0,g(x)<0时,可行解在限制区域内部,当β>0时,可行解在g(x)=0,可行解在g(x)边界。
(这里记住就行了,我们推导支持向量机时,如果β=0,g(x)<0,如果β>0,g(x)=0)
(3)对偶问题
3.1、首先我们看看拉格朗日乘数的函数可以写成哪种形式
在这里插入图片描述
3.2、对偶转化:
在这里插入图片描述
对偶问题说明,对L先对x求最小值再对β求最大值等价于先对β求最大再对x求最小。但注意这里对偶变换是有条件的,即β=0或者g(x)=0,
(4)距离计算公式:
在这里插入图片描述
1、线性可分SVM
1.1 线性可分svm基本思路
在这里插入图片描述
2、线性可分svm的基础知识
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
对于向量x而言, ∣ w T x + b ∣ |w^Tx+b| wTx+b为函数间隔,只能相对的表示x到超平面的距离,但是
3、线性svm推导
在以前学习感知机模型我们知道,我们可以找到多个分割超平面将点分开,并且优化时希望所有的点
离超平面尽可能的远,但实际上离超平面足够远的点基本上已经被分类正确了,所以这个是没有意义的。我们反而比较关心那些离超平面很近的点。这些点比较容易分错。所以我们只需要让离超平面比较近的点尽可能原理超平面,那么模型的分类效果就比较不错。svm其实就是这个思想。
在这里插入图片描述
现在我们假设数据线性可分,那么存在一个超平面 w T x + b w^Tx+b wTx+b可以将数据完全分开。那么 w T x + b = 1 和 w T x + b = − 1 w^Tx+b=1和w^Tx+b=-1 wTx+b=1wTx+b=1被称为支持向量平面。即这两个平面到分割平面的距离分别为1,那么在这两个平面上的点被称为支持向量。那么有
在这里插入图片描述
设x为支持向量,则x满足 w T x + b = ± 1 w^Tx+b=±1 wTx+b=±1其中,这些点被称为支持向量, ∣ ( w T x + b ) ∣ ∣ ∣ w ∣ ∣ \frac {|(w^Tx+b)|}{||w||} w(wTx+b)为支持向量到超平面的几何距离(注意上面的距离公式写错了)
wx+b=0为超平面
wx+b=1和wx+b=-1分别为支持向量平面,其函数距离全部设为1或者-1.
则两个支持向量到超平面的距离之和为:
1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1
所以SVM模型就是要求所有的分类点到支持向量的集合间隔经可能的大,在所有点分类正确的情况下,用数学公式表示如下
在这里插入图片描述
其中第一个条件表示我们希望,支持向量距离超平面的几何距离尽可能的远
第二个条件表示,我们同时希望所有样本都能分类正确。
要求分类正确,所以限制条件中所有点类别乘以其表达式都是大于等于1的。
求1/||w|| 的最大值等价于求||w||的最大值,等价于 ∣ ∣ w ∣ ∣ 2 ||w||^2 w2的最大值,等价于求 1 2 ∣ ∣ w ∣ ∣ 2 {1\over 2}||w||^2 21w2
在这里插入图片描述
在这里插入图片描述
此时将目标函数和约束条件使用KKT条件转换为拉格朗日函数,从而转换为无约束的优化函数
在这里插入图片描述
根据kkt对偶互补条件,可以得到如下转换。
即:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
Ax对x求偏导,等于A的转置。
将上面求出的结果带入L(w,b,β)这个函数中
在这里插入图片描述
注意上述公式, Σ β i y i = 0 但 是 Σ β i y i x i 不 等 于 0 Σβ_iy^{i}=0但是Σβ_iy^{i}x^{i}不等于0 Σβiyi=0Σβiyixi0
则公式推导如下:
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述假设我们已经算出了β,
在这里插入图片描述
即我们求出的 β ∗ β^* β中对应的其分量大于0的样本即支持向量。
在这里插入图片描述
β i ( y i ∗ ( w T x i + b ) − 1 ) = 0 β_i(y_i*(w^Tx^i+b)-1)=0 βi(yi(wTxi+b)1)=0的原因是为了限制kkt对偶互补条件
上面的公式推导
在这里插入图片描述
图中的最后松弛条件约束中表明,即我们的每个求出来β大于0对应的点都是支持向量机上的点。因为支持向量机上的点才会使得 y i ∗ ( w T x i + b ) − 1 = 0 {y^{i}*(w^{T}x^{i}+b)-1=0} yi(wTxi+b)1=0,这时β一定大于0。
SVM算法简单流程
在这里插入图片描述
可以看出对于支持向量机来说,其构造的分类器只受支持向量的影响。而其他向量并不受影响。
最终的约束方程为:
在这里插入图片描述
svm案例:
在这里插入图片描述
求解过程:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、非线性支持向量机与核函数
svm软间隔模型
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
ζ {\zeta} ζ表示松弛因子,松弛因子越大,样本点离分类的超平面越近,表示模型越允许你可以分错更多更多的点,C表示惩罚项, ∑ 1 m ζ i {\sum_1^m{\zeta}_i} 1mζi表示总的分错代价,我们尽可能的希望这个分错的代价尽可能的少,防止 ζ {\zeta} ζ取得过大。C也可以理解为你对分错样本的容忍度有多大,比如我设 ∑ 1 m ζ i {\sum_1^m{\zeta}_i} 1mζi为10,c=1000,这时即时这个点的支持向量离超平面很近(1/2*||w||很小),我也不选这个点(对错误容忍度很低)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
C − β i − μ i > = 0 C-β_i-\mu_i>=0 Cβiμi>=0
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
svm软间隔算法模型算法流程:
在这里插入图片描述
其中支持向量的集合也可以把条件限制为 ( 0 < β i < c ) (0<β_i<c) 0<βi<c
软间隔svm总结:

注:C越大,表示对松弛因子的惩罚力度越大,越不允许模型将点分错,被分错的样本越少,准确率就越高,相反C越小,惩罚力度越小,允许分错的点就越多,正确率就越高,但是c不一定越大越好,因为c越大,虽然准确率高但泛化能力差,容易产生过拟合,但是c如果小的,虽然错分率高,但是泛化能力高,不容易产生过拟合(因为本来很多样本就会有噪声),

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值