我们一块来学SVM支持向量机


支持向量机(support vector machines,SVM)是一种二分类模型,它将实例的特征向量映射为空间中的一些点,SVM 的目的就是想要画出一条线,以 “最好地” 区分这两类点,以至如果以后有了新的点,这条线也能做出很好的分类。SVM 适合中小型数据样本、非线性、高维的分类问题。

支持向量

1.线性可分

在分类问题中,最简单的分类就是二分类问题,而且这个二分类问题是一个线性可分问题。
在一维空间,也就是一个坐标轴上面,要分开两个可以分开的点集合,我们只需要找到一个点,如图1:
在这里插入图片描述图1 一维线性可分示意图

在二维空间中,要分开两个线性可分的点集合,我们需要找到一条分类直线即可,如图2:
在这里插入图片描述
图2 二维线性可分示意图

在三维空间中,要分开两个线性可分的点集合,我们需要找到一个分类面:如图3:
在这里插入图片描述
图3 三维线性可分示意图

数学定义:
D 0 D_0 D0 D 1 D_1 D1 是 n 维欧氏空间中的两个点集。如果存在 n 维向量 w 和实数 b,使得所有属于 D 0 D_0 D0的点 x i x_i xi都有 w x i + b > 0 wx_i+b>0 wxi+b>0 ,而对于所有属于 D 1 D_1 D1 的点 x j x_j xj 则有 w x j + b < 0 wx_j+b<0 wxj+b<0,则我们称 D 0 D_0 D0 D 1 D_1 D1 线性可分。

2.最大间隔超平面

从二维扩展到多维空间中时,将 D 0 D_0 D0 D 1 D_1 D1完全正确地划分开的 w x i + b = 0 wx_i+b=0 wxi+b=0就成了一个超平面。

为了使这个超平面更具鲁棒性,我们会去找最佳超平面,以最大间隔把两类样本分开的超平面,也称之为最大间隔超平面。

两类样本分别分割在该超平面的两侧;
两侧距离超平面最近的样本点到超平面的距离被最大化了。

3.最优化问题

在这里插入图片描述

样本中距离超平面最近的一些点,这些点叫做支持向量。

SVM 想要的就是找到各类样本点到超平面的距离最远,也就是找到最大间隔超平面。任意超平面可以用下面这个线性方程来描述:

W T x + b = 0 W^Tx+b=0 WTx+b=0

二维空间点 ( x , y ) (x,y) (x,y)到直线 A x + B y + C = 0 Ax+By+C=0 Ax+By+C=0的距离公式是:

∣ A x + B y + C ∣ A 2 + B 2 \cfrac{|Ax+By+C|}{\sqrt{A^2+B^2}} A2+B2 Ax+By+C

扩展到 n 维空间后,点 x = ( x 1 , x 2 . . . x n ) x=(x_1,x_2...x_n) x=(x1,x2...xn)到直线 w T x + b = 0 w^Tx+b=0 wTx+b=0 的距离为:

∣ w T x + b ∣ ∣ ∣ w ∣ ∣ \cfrac{|w^Tx+b|}{||w||} wwTx+b

其中 ∣ ∣ w ∣ ∣ = w 1 2 + . . . w n 2 ||w||=\sqrt{w_1^2+...w_n^2} w=w12+...wn2

如图所示,根据支持向量的定义我们知道,支持向量到超平面的距离为 d,其他点到超平面的距离大于 d。
在这里插入图片描述
于是可以导出这个公式

{ ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ ≥ d , y = + 1 ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ ≤ d , y = − 1 \begin{cases}\cfrac{|w^Tx+b|}{||w||}\ge d,y=+1\\\cfrac{|w^Tx+b|}{||w||}\leq d,y=-1\end{cases} wwTx+bd,y=+1wwTx+bd,y=1

y代表最大间隔超平面分割的两个类。

稍作转化可以得到:

{ ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ d ≥ 1 , y = + 1 ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ d ≤ − 1 , y = − 1 \begin{cases}\cfrac{|w^Tx+b|}{||w||d}\ge1,y=+1\\\cfrac{|w^Tx+b|}{||w||d}\leq -1,y=-1\end{cases} wdwTx+b1,y=+1wdwTx+b1,y=1

∣ ∣ w ∣ ∣ d ||w||d wd是正数,我们暂且令它为 1(之所以令它等于 1,是为了方便推导和优化,且这样做对目标函数的优化没有影响),故:

{ w T x + b ≥ 1 , y = + 1 w T x + b ≤ − 1 , y = − 1 \begin{cases}w^Tx+b\ge1,y=+1\\w^Tx+b\leq-1,y=-1\end{cases} {wTx+b1,y=+1wTx+b1,y=1

将两个方程合并,我们可以简写为:

y ( w T x + b ) ≥ 1 y(w^Tx+b)\ge1 y(wTx+b)1

至此我们就可以得到最大间隔超平面的上下两个超平面:
在这里插入图片描述
每个支持向量到超平面的距离可以写为:

d = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ d=\cfrac{|w^Tx+b|}{||w||} d=wwTx+b

由上述 y ( w T x + b ) > 1 > 0 y(w^Tx+b)>1>0 y(wTx+b)>1>0可以得到 y ( w T x + b ) = ∣ w T x + b ∣ y(w^Tx+b)=|w^Tx+b| y(wTx+b)=wTx+b ,所以我们得到:

d = y ( w T x + b ) ∣ ∣ w ∣ ∣ d=\cfrac{y(w^Tx+b)}{||w||} d=wy(wTx+b)

最大化这个距离:

m a x 2 ∗ y ( w T x + b ) ∣ ∣ w ∣ ∣ max2*\cfrac{y(w^Tx+b)}{||w||} max2wy(wTx+b)

这里乘上 2 倍其实就是margin,方便后续计算。刚刚我们得到支持向量 [公式] ,所以我们得到:

m a x 2 ∣ ∣ w ∣ ∣ max\cfrac{2}{||w||} maxw2

再做一个转换:

m i n ∣ ∣ w ∣ ∣ 2 min\cfrac{||w||}{2} min2w

为了方便计算(去除 ∣ ∣ w ∣ ∣ ||w|| w的根号),我们有:

m i n ∣ ∣ w ∣ ∣ 2 2 min\cfrac{||w||^2}{2} min2w2

所以得到的最优化问题是:

m i n ∣ ∣ w ∣ ∣ 2 2 s . t . y i ( w T x i + b ) ≥ 1 min\cfrac{||w||^2}{2} s.t.\quad y_i(w^Tx_i+b)\ge1 min2w2s.t.yi(wTxi+b)1

未完待续--------------------

参考文章

SVM清晰讲解——线性可分问题

【机器学习】支持向量机 SVM(非常详细)

机器学习算法(一)SVM

SVM简介w3c

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Escape the bug

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

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

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

打赏作者

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

抵扣说明:

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

余额充值