python支持向量机_机器学习-支持向量机及其python实现(一)

本文详细介绍了支持向量机(SVM),这是一种用于二类分类的模型,尤其擅长处理非线性问题。通过引入核技巧,SVM能够构建分隔超平面以最大化样本点与超平面之间的间隔。SMO算法是实现SVM的一种常见方法,用于求解凸二次规划问题。此外,文章还讨论了支持向量在模型中的重要性以及线性与非线性支持向量机的区别。SVM的主要优点包括高泛化能力、较低的计算复杂度和易于解释,但对参数选择和核函数敏感。
摘要由CSDN通过智能技术生成

37fd95eb9b8b3331a6cccdaf34efe51f.png

目录:

  1. 支持向量机概述
  2. 线性支持向量机
  3. SMO算法及其python实现
  4. 核方法
  5. 非线性支持向量机

支持向量机概述:

支持向量机是一种二类分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器;支持向量机还包括核技巧,这使其可以用来解决非线性分类问题。支持向量机的学习策略是间隔最大化,可形式化为一个凸二次规划求解问题,求解凸二次规划的最优化算法就是支持向量机的学习算法,序列最小优化算法SMO常用于实现支持向量机模型

  • 优点:泛化错误率低,计算开销较小,结果易解释
  • 缺点:对参数调节和核函数选择敏感,原始分类器不加修改仅适用于二类分类问题
  • 适用数据类型:数值型标称型数据

39239d7f0a5bf6b1cb60b308b408ecc4.png

线性支持向量机:

在样本空间,分隔超平面可以通过线性方程来表示:

equation?tex=w%5ETw%2Bb%3D0

支持向量:在线性可分的情况下,训练数据集的样本点中与分离超平面距离最近的数据点称为支持向量。假设超平面(w,b)能将样本正确分类,即对于样本点(xi,yi)满足以下关系:

equation?tex=w%5ETw%2Bb%5Cgeq1%2Cy_i%3D1

equation?tex=w%5ETw%2Bb%5Cle-1%2Cy_i%3D-1 满足的样本点即是支持向量。

间隔:两个异类支持向量点到分隔面的距离:

equation?tex=%5Cgamma%3D%5Cfrac%7B2%7D%7B%5Cleft%7C%5Cleft%7Cw%5Cright%7C%5Cright%7C%7D

最大间隔法:如果样本点离决策界面越远,则分隔超平面的分类结果更好,支持向量就是离分隔超平面最近的样本点,最大化间隔等效于最大化支持向量到分隔面的距离。

equation?tex=max%5Cfrac%7B2%7D%7B%5Cleft%7C%5Cleft%7Cw%5Cright%7C%5Cright%7C%7D

equation?tex=y_i%5Cleft%28w%5ETx_i%2Bb%5Cright%29%5Cgeq1

对偶问题:等价于最小化

equation?tex=%5Cleft%7C%5Cleft%7C%5Cmathbf%7Bw%7D%5Cright%7C%5Cright%7C%5E%5Cmathbf%7B2%7D ,使用
拉格朗日乘数法,对每条约束添加拉格朗日乘子,列写出其拉格朗日函数,推导过程:

equation?tex=L%5Cleft%28w%2Cb%2C%5Calpha%5Cright%29%3D%5Cfrac%7B1%7D%7B2%7D%5Cleft%7C%5Cleft%7Cw%5Cright%7C%5Cright%7C%2B%5Csum_%7Bi%3D1%7D%5E%7BN%7D%7B%5Calpha_i%5Cleft%5B1-y_i%5Cleft%28w%5ETx_i%2Bb%5Cright%29%5Cright%5D%7D

并对其中分量求偏导,使其全为0:

equation?tex=%5Cfrac%7B%5Cpartial+L%7D%7B%5Cpartial+w%7D%3Dw-%5Csum_%7Bi%3D1%7D%5E%7BN%7D%7B%5Calpha_iy_ix_i%7D%3D0%2Cw%3D%5Csum_%7Bi%3D1%7D%5E%7BN%7D%7B%5Calpha_iy_ix_i%7D

equation?tex=%5Cfrac%7B%5Cpartial+L%7D%7B%5Cpartial+b%7D%3D-%5Csum_%7Bi%3D1%7D%5E%7BN%7D%7B%5Calpha_iy_i%7D%3D0%2C%5Csum_%7Bi%3D1%7D%5E%7BN%7D%7B%5Calpha_iy_i%7D%3D0+

然后消去w和b:

06f29c4fc05a899fb73aa8550fa0dea2.png

d7fb8126a182d0369c4e4b1daf3f184e.png

equation?tex=min%5C+L%5Cleft%28w%2Cb%2C%5Calpha_i%5Cright%29
equation?tex=%5Calpha_i 的极大,即是其对偶问题:

equation?tex=max+%5Csum_%7Bi%3D1%7D%5E%7BN%7D%5Calpha_i-%5Cfrac%7B1%7D%7B2%7D%5Csum_%7Bi%3D1%7D%5E%7BN%7D%5Csum_%7Bj%3D1%7D%5E%7BN%7D%7B%5Calpha_i%5Calpha_jy_iy_jx_i%5ETx_j%7D

equation?tex=%5Csum_%7Bi%3D1%7D%5E%7Bm%7D%7B%5Calpha_iy_i%3D0%7D
equation?tex=%5Calpha_i%5Cgeq0

解出后,求出w和b即可得到分隔超平面的表达式:

equation?tex=w%5E%7B%2A%7D%3D%5Csum_%7Bi%3D0%7D%5E%7BN%7D%7B%5Calpha%5E%2A_%7Bi%7Dy_%7Bi%7Dx_%7Bi%7D%7D

equation?tex=b%5E%2A%3Dy_%7Bj%7D-%5Csum_%7Bi%3D0%7D%5E%7BN%7D%7B%5Calpha%5E%2A_%7Bi%7Dy_%7Bi%7D%5Cleft%28+x_%7Bi%7Dx+_%7Bj%7D%5Cright%29%7D

上述需要满足KKT(karush-kuhn-tucker)条件:

equation?tex=%5Calpha_i%5Cgeq0 由拉格朗日乘数法求L的极小值限制

equation?tex=%5Cmathbf%7By%7D_%5Cmathbf%7Bi%7D%5Cmathbf%7Bf%7D%5Cleft%28%5Cmathbf%7Bx%7D_%5Cmathbf%7Bi%7D%5Cright%29-%5Cmathbf%7B1%7D%5Cgeq%5Cmathbf%7B0%7D 由支持向量的性质决定

equation?tex=%5Cmathbf%7B%5Calpha%7D_%5Cmathbf%7Bi%7D%5Cleft%28%5Cmathbf%7By%7D_%5Cmathbf%7Bi%7D%5Cmathbf%7Bf%7D%5Cleft%28%5Cmathbf%7Bx%7D_%5Cmathbf%7Bi%7D%5Cright%29-%5Cmathbf%7B1%7D%5Cright%29%3D%5Cmathbf%7B0%7D 因为样本点总有
equation?tex=%5Calpha_%7Bi%7D%3D0 或者
equation?tex=y_%7Bi%7Df%5Cleft%28+x_%7Bi%7D+%5Cright%29%3D1 ,如果
equation?tex=%5Calpha_%7Bi%7D%3E0 ,则该样本点是一个支持向量;如果
equation?tex=%5Calpha_%7Bi%7D%3D0 ,则该样本点对分隔超平面的求解无影响。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值