机器学习之支持向量机

发布于:2024-04-28 ⋅ 阅读:(20) ⋅ 点赞:(0)

目录

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

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中

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


网站公告

今日签到

点亮在社区的每一天
去签到