无废话的机器学习笔记(五)(SVM)

这节我们介绍监督学习中分类方法的支持向量机SVM),我尽量少用数学公式,多用形象的语言去讲清楚基本概念。

定义

在这里插入图片描述

SVM是用于分类的监督学习模型,使用支持向量来定义决策边界,支持向量是每一类最接近决策边界的点,如上图中用黑色圈圈起来的点,你可能会问,这不是点吗?为什么说成是向量?把原点和圈住的点相连,它就成向量啦哈哈。所以一堆数据给我们,我们关注的只有其中的几个能做支持向量的点(如果数据特征有n个,则只有要用n+1个支持向量)(其他点可以忽视哈哈),效率非常高。通过将未标记的点与决策边界进行比较就可以进行分类! 支持向量与决策边界之间的距离称为间隔(margin),支持向量机试图在可接受的误差范围内创造尽可能大的间隔
 

数学表达

我们定义决策平面(也叫超平面)为 w T x + b = 0 \textbf w^T\textbf x+b=0 wTx+b=0,w,x是向量,w法向量决定了超平面的方向,b位移项决定了超平面与原点的距离,空间中任意的点到超平面的距离为r,由初中学的距离公式可知 r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r = \frac{|\textbf w^T\textbf x + b|}{||\textbf w||} r=wwTx+b 假设超平面能正确分类数据,我们定义 (y是标签): { w T x i + b ⩾ + 1 , y i = + 1 w T x i + b ⩽ − 1 , y i = − 1 \begin{cases} &w^Tx_i + b\geqslant +1,\quad y_i=+1 \\ &w^Tx_i + b\leqslant -1,\quad y_i=-1 \end{cases} {wTxi+b+1,yi=+1wTxi+b1,yi=1 所以 y i ⋅ ( w T x i + b ) ⩾ 1 y_i\cdot (w^Tx_i + b) \geqslant 1 yi(wTxi+b)1, 对于支持向量 { w T x i + b = + 1 , y i = + 1 w T x i + b = − 1 , y i = − 1 \begin{cases} &w^Tx_i + b= +1,\quad y_i=+1 \\ &w^Tx_i + b= -1,\quad y_i=-1 \end{cases} {wTxi+b=+1,yi=+1wTxi+b=1,yi=1 所以 y i ⋅ ( w T x i + b ) = 1 y_i\cdot (w^Tx_i + b) = 1 yi(wTxi+b)=1,我们终于可以推出margin的表达式了: r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ = ∣ y i ⋅ ( w T x + b ) ∣ ∣ ∣ w ∣ ∣ = y i ⋅ ( w T x + b ) ∣ ∣ w ∣ ∣ \begin{aligned} r &= \frac{|w^T x + b|}{||w||} = \frac{|y_i\cdot(w^T x + b)|}{||w||} \\ &= \frac{y_i\cdot(w^T x + b)}{||w||} \end{aligned} r=wwTx+b=wyi(wTx+b)=wyi(wTx+b) 所以 m a r g i n = m i n r margin = min{\textbf r} margin=minr , 而 m i n { y i ⋅ ( w T x + b ) } = 1 min\{y_i\cdot(w^T x + b)\} = 1 min{yi(wTx+b)}=1,所以: margin = 1 ||w|| \textbf{margin} = \frac{\textbf 1}{\textbf {||w||}} margin=||w||1 终于,我们得出了SVM的基本型(max margin 即 min w)(s.t.是subject to 的意思,就是受哪些条件限制): min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ⋅ ( w T x i + b ) ⩾ 1 , i = 1 , 2 , … , m . \begin{aligned} &\min_{w,b} \frac{1}{2}||w||^2\\ &s.t. \quad y_i\cdot (w^Tx_i + b)\geqslant 1,\quad i=1,2,\dots,m. \end{aligned} w,bmin21w2s.t.yi(wTxi+b)1,i=1,2,,m.
问题来了,怎么去求w,b?
我们进入对偶问题,不要害怕,我不引入数学公式了。我们看看上面的基本型,一个多元函数,然后受一些条件限制,然后目标是求它的极值,高数学得好的同学应该有灵感了,没错,这就是多元函数的条件极值问题,最简单的就是用拉格朗日函数法嘛,先引入拉格朗日乘子 α i \alpha_i αi,然后构建拉格朗日函数 L ( w , b , α ) L(w,b,\alpha) L(w,b,α),再分别对w,b 求导并令为0,再把两式带回拉格朗日函数消去w和b L ( α ) L(\alpha) L(α),求其最大值时的 α \alpha α,紧接着再求出w,b,搞定。
这只是大概思路,深入的话你会发现这是个二次规划问题,需要引入KKT条件和推导很多数学式子,还会了解到高效的SMO算法,慢慢来比较快。

 

软间隔

在这里插入图片描述
遇到上面这种情况怎么办?不可能精准地将两部分严格分开,那我们就不那么严格地分开,哈哈,称为软间隔分类(soft-margin),就是允许有一定的误差,以大局为重,总的来说能分开就算合格。
我们引入一个参数C,它决定支持向量机允许多少误差。如果C很大,那么支持向量机有一个硬边缘,它不会允许很多错误分类,因此,边缘可以相当小。如果C太大,太宽容,模型就有过拟合的风险。 ξ \xi ξ是松弛变量。 min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 m ξ i s . t . y i ⋅ ( w T x i + b ) ⩾ 1 − ξ i , ξ i ⩾ 0 , i = 1 , 2 , … , m . \begin{aligned} &\min_{w,b} \frac{1}{2}||w||^2 + C \sum_{i=1}^{m} \xi^i\\ &s.t. \quad y_i\cdot (w^Tx_i + b)\geqslant 1- \xi^i,\quad \xi^i \geqslant 0,\quad i=1,2,\dots,m. \end{aligned} w,bmin21w2+Ci=1mξis.t.yi(wTxi+b)1ξi,ξi0,i=1,2,,m.
在这里插入图片描述

 

核函数

核函数里面会有很多数学推导,这里以先熟悉概念为主。
在这里插入图片描述
遇到这种数据怎么办?再软也不行了,这就不是直线能够分开的。我们引入核函数,就是把数据先映射到高维空间,在高维空间用超平面把它们分开,然后再把超平面投影回原始维度即为所求。核函数就是把低维数据投影到高纬的函数在这里插入图片描述
比如这个核函数,点(1,2)经过投影得( 2 2 2\sqrt{2} 22 ,1,4)
在这里插入图片描述
在高维空间得到可靠的超平面后,投影回二维平面,得在这里插入图片描述
这个橙色圆的外边即为所求。

 
附上其他笔记的链接:
无废话的机器学习笔记(一)
无废话的机器学习笔记(二)(线性回归)
无废话的机器学习笔记(三)(梯度下降)
无废话的机器学习笔记(四)(感知机、逻辑回归、贝叶斯)
无废话的机器学习笔记(六)(决策树,KNN)
无废话的机器学习笔记(七)(聚类: kmeans、GMM、谱聚类)
无废话的机器学习笔记(番外)(数据集,方差-偏差,过拟合,正则化,降维)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

全栈O-Jay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值