机器学习之支持向量机

本文介绍了支持向量机的基本概念,包括数学模型(如平面方程、决策边界、支持向量)、核函数的使用及其常见类型,以及软间隔处理和过拟合控制的方法。重点讲解了目标函数求解和Python中的sklearn.svm库应用。
摘要由CSDN通过智能技术生成

目录

一、数学知识(不重要,可直接结论)

1.1平面方程

1.2决策方程

1.3支持向量

1.4目标函数

1.5求解

二、核函数

2.1数学模型

2.2核函数

2.3常见核函数

线性核

多项式核

高斯核

拉普拉斯核

Sigmoid核

核函数的组合

2.4核方法

三、软间隔

常用替代损失函数

hinge损失

指数损失

对率损失

四、支持向量回归

五、Python中的函数


支持向量机的主要任务就是从样本空间中找到合适的划分超平面,将属于不同类别的样本分开。

我们希望找到的决策边界距离两个类别中位于边界上的点最远。

一、数学知识(不重要,可直接结论)

不重要,知道结果即可

1.1平面方程

样本空间中的划分超平面的线性方程可描述如下:

\omega = (w_{a},...,w_{n})为法向量,决定平面方向

b为平面与原点的距离

划分超平面被记为(w,b)

样本空间中任意一点x到平面的距离为

1.2决策方程

y(x)=w^{T}\Phi (x)+b

其中,对于x,需要一定的数学处理。

对于样本空间中的(x_{i},y_{i}),其中前者为样本的属性,后者为类别

当x为正例时,Y=+1

当x为负例时,Y=-1

定义分类对应的关系式如下

1.3支持向量

使得等号成立的是距离超平面最近的几个点,它们即为支持向量。

两个异类支持向量到平面的距离为

它被称为间隔。

我们的目标就是找到参数使得间隔最大。

1.4目标函数

因此,目标函数为

对于第二行中的“s.t.”意思是“使得······(后面的式子)满足"

为什么要乘以yi,是为了将正负的两个式子整合在一起。

1.5求解

目标函数实际上是一个凸二次规划问题

运用拉格朗日乘子法进行求解

该问题的拉格朗日函数为

其中,\alpha =(\alpha _{1},...,\alpha _{m})

分别对w和b求偏导,并令偏导为0

消去上述拉格朗日函数中的w和b

得到目标函数的对偶问题

之后,对\alpha求极大值

最终,是对以下式子求解

其中,仍有约束条件

求出\alpha后,再去求w和b

w=\sum_{i=1}^{n}\alpha _{i}y_{i}x_{i}

b=y_{i}-\sum_{i=1}^{n}\alpha _{i}y_{i}(x_{i}x_{j})

为了解决过拟合,可以加入松弛因子

新的目标函数

min\frac{1}{2}\left \| w \right \|^{2}+C\sum_{i=1}^{n}\xi _{i}

C趋近很大的时候,要求严格

C趋近很小的时候,要求不严格

w=\sum_{i=1}^{n}\alpha _{i}y_{i}x_{i}

二、核函数

2.1数学模型

如果训练的样本线性不可分,那么可以将样本从原来的空间映射到一个更高维的空间,使得样本在高维空间线性可分。

设变换方法为\Phi(x)

则划分超平面对应的模型为

f(x)=w^{T}\Phi (x)+b

求解的目标函数为

对应约束条件为

其中

\Phi (x_{i})^{T}\Phi (x_{j})表示样本映射到高维空间后的内积,可通过核函数计算

2.2核函数

k(xi,xj)就是核函数

引入核函数后,划分超平面对应的模型为

f(x)=w^{T}\Phi (x)+b= \sum_{i=1}^{m}\alpha _{i}y_{i}k(x,x_{i})+b

如果一个对称矩阵所对应的核矩阵半正定,它就可以核函数。

有如下定理:

\chi为输入空间,k(\cdot ,\cdot )为定义在\chi \times \chi上的对称函数,则k是核函数当且仅当对于任意数据D=(x_{1},...,x_{m}),核矩阵K是正定的

每一个核函数都定义了一个称为“再生核希尔伯特空间”的特征空间。

2.3常见核函数

线性核

k(x_{i},x_{j})=x_{i}^{T}x_{j}

多项式核

k(x_{i},x_{j})=(x_{i}^{T}x_{j})^{d}

d>=1为多项式的次数

高斯核

k(x_{i},x_{j})=exp(-\frac{\left \| x_{i}-x_{j} \right \|^{2}}{2\sigma ^{2}})

\sigma >0,为高斯核的带宽

拉普拉斯核

k(x_{i},x_{j})=exp(-\frac{\left \| x_{i}-x_{j} \right \|^{2}}{\sigma })

\sigma >0

Sigmoid核

k(x_{i},x_{j})=tanh(\beta x_{i} ^{T}x_{j}+\theta )

tanh为双曲正切函数

\beta >0,\theta <0

核函数的组合

核函数的组合也是核函数

线性组合结果是核函数

\gamma _{1}k_{1}+\gamma _{1}k_{2}

直积结果也是核函数

k_{1}\bigotimes k_{2}(x,z)=k_{1}(x,z)k_{2}(x,z)

k(x,z)=g(x)k_{1}(x,z)g(z)也是核函数

2.4核方法

基于核函数的学习方法

核化:引入核函数

核化使得线性学习器转为非线性学习器

三、软间隔

软间隔即允许对样本的划分出错

优化目标为

min_{w,b} \frac{1}{2}\left \| w\right \|^{2}+C\sum_{i=1}^{m}\zeta _{0/1}(y_{i}(w^{T}x_{i}+b)-1)

其中

\zeta _{_{0/1}}是“0/1损失函数”,非凸,非连续,可用“替代损失”函数进行代替

常用替代损失函数

hinge损失

指数损失

对率损失

四、支持向量回归

支持向量回归SVR

当f(x)与y之间的差别达到一定范围才计算损失。

即以f(x)为中心,构建一定宽度的隔离带,当样本落入隔离带,则被认为是正确的。

五、Python中的函数

都在sklearn.svm中

参考文献:周志华《机器学习》

  • 23
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值