机器学习之支持向量机

目录

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

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中

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

相关推荐

  1. 机器学习模型支持向量

    2024-04-28 17:52:04       14 阅读
  2. 机器学习 -- 支持向量

    2024-04-28 17:52:04       34 阅读
  3. 机器学习算法支持向量(SVM)

    2024-04-28 17:52:04       31 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-28 17:52:04       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-28 17:52:04       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-28 17:52:04       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-28 17:52:04       20 阅读

热门阅读

  1. ssh -t 命令使用

    2024-04-28 17:52:04       14 阅读
  2. SSH ControlMaster功能

    2024-04-28 17:52:04       11 阅读
  3. 在ubuntu20上编译bcc时遇到:Could NOT find LibDebuginfod

    2024-04-28 17:52:04       11 阅读
  4. mysql数据库开发军规

    2024-04-28 17:52:04       13 阅读
  5. 朱元璋逆袭史:从流浪行僧到大明雄主

    2024-04-28 17:52:04       13 阅读
  6. Nest.js项目初始配置

    2024-04-28 17:52:04       15 阅读
  7. Redis(四) 主从、哨兵、集群环境搭建

    2024-04-28 17:52:04       12 阅读