支持向量机01-初步了解

1. 什么是支持向量机(Support Vector Machine,SVM)

分类作为数据挖掘领域中一项非常重要的任务,它的目的是学会一个分类函数或分类模型(或者叫做分类器),该模型能把数据库中的数据项映射到给定类别中的某一个,从而可以用于预测未知类别。

支持向量机,顾名思义,分为两个部分了解:一,什么是支持向量(简单来说,就是支持或支撑平面上把两类类别划分开来的超平面的向量点);二,什么是“机(machine,机器)”,即是一个算法。在机器学习领域,常把一些算法看做是一个机器,如分类机(也叫做分类器)。而支持向量机本身便是一种监督式学习的方法,它广泛的应用于统计分类以及回归分析中。

超平面不一定是一个面,它是所处向量空间的一个子空间,如立体空间中一个面,二维平面上一条线。它的作用在于将空间中的数据一分为二,达到分类的目的。表达式为:
g ( x ) = w T x + w 0 ​ = 0 g(x)=w^T x+w_0​=0 g(x)=wTx+w0=0
w = ( w 1 ​ , w 2 ​ , . . . , w l ​ ) T w=(w_1​,w_2​,...,w_l​)^T w=(w1,w2,...,wl)T, 权向量(超平面法向量)
x = ( x 1 ​ , x 2 ​ , . . . , x l ​ ) T x=(x_1​,x_2​,...,x_l​)^T x=(x1,x2,...,xl)T, 实例(样本向量)
w 0 w_0 w0​, 偏移量
在实际中, w w w确定,因此这个方程代表所有满足的向量 x x x(点)的集合, w T x w^Tx wTx可视为 x x x w w w的投影乘以 w w w的模长。

监督式学习(Supervised learning)是一个机器学习中的方法,可以由训练资料中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练资料是由输入物件(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归),或是预测一个分类标签(称作分类)。

支持向量机是90 年代中期发展起来的基于统计学习理论的一种机器学习方法,通过寻求结构化风险最小来提高学习机泛化能力,实现经验风险和置信范围的最小化,从而达到在统计样本量较少的情况下,亦能获得良好统计规律的目的。

2. 线性分类

讲SVM 之前,必须先弄清楚一个概念:线性分类器(也可以叫做感知机)。

2.1 分类标准

简单起见,考虑的是一个两类的分类问题(多分类问题类似,只是延拓一下),数据点用 x x x 来表示,这是一个 n n n 维向量, w T w^T wT 上标中的 T T T代表转置,而类别用 y y y 来表示,可以取 1 1 1 或者 − 1 -1 1,分别代表两个不同的类。一个线性分类器就是要在 n n n 维的数据空间中找到一个超平面,其方程可以表示为:
w T x + b = 0 w^Tx+b= 0 wTx+b=0
为何用 y y y 1 1 1 或者 − 1 -1 1来表示两个不同的类别呢?其实,这个 1 1 1 − 1 -1 1的分类标准起源于 L o g i s t i c Logistic Logistic 回归,为了完整和过渡的自然性,咱们就再来看看这个逻辑回归( L o g i s t i c R e g r e s s i o n Logistic Regression LogisticRegression )。

2.2 逻辑回归( L o g i s t i c R e g r e s s i o n Logistic Regression LogisticRegression

逻辑回归虽然名字里带“回归”,但它实际上是一种分类方法,主要用于两分类问题(即输出只有两种,分别代表两个类别)。其目的是从特征学校出一个 0 / 1 0/1 0/1 分类模型,而这个模型是将特性的线性组合作为自变量,由于自变量的取值是负无穷到正无穷,所以利用了Logistic函数(或称为Sigmoid函数)将自变量映射到 ( 0 , 1 ) (0,1) (01) 上,映射后的值被认为是属于 y = 1 y=1 y=1 的概率。Sigmoid函数的形式为:
g ( z ) = 1 1 + e − z g(z)= \frac{1}{1+e^{-z}} g(z)=1+ez1
Sigmoid 函数有个很漂亮的“S”形,如下图所示(引自维基百科):
Sigmoid 函数对于线性边界的情况,边界形式如下:
θ 0 + θ 1 x 1 + , . . . , + θ n x n = ∑ i = 1 n θ i x i = θ T x \theta_0+\theta_1x_1+,...,+\theta_nx_n=\sum_{i=1}^n \theta_ix_i=\theta^Tx θ0+θ1x1+,...,+θnxn=i=1nθixi=θTx
构造预测函数为:
h θ ( x ) = g ( θ T x ) = 1 1 + e − θ T x h_\theta(x)=g(\theta^Tx)= \frac{1}{1+e^{-\theta^Tx}} hθ(x)=g(θTx)=1+eθTx1
函数 h θ ( x ) h_\theta(x) hθ(x)的值有特殊的含义,它表示结果取 1 1 1 的概率。当我们要判别一个新来的特征属于哪个类时,只需要求 h θ ( x ) h_\theta(x) hθ(x),若大于 0.5 0.5 0.5 就是 y = 1 y=1 y=1 的类,反之就属于 y = 0 y=0 y=0 的类。因此对于输入 x x x 分类结果为类别 1 1 1 和类别 0 0 0 的概率分别为:
P ( y = 1 ∣ x ; θ ) = h θ ( x ) P ( y = 0 ∣ x ; θ ) = 1 − h θ ( x ) P(y=1|x;\theta)=h_\theta(x) \\ P(y=0|x;\theta)=1-h_\theta(x) P(y=1x;θ)=hθ(x)P(y=0x;θ)=1hθ(x)
对于支持向量机
使用标签 y = − 1 , y = 1 y=-1,y=1 y=1,y=1 替换逻辑回归中使用的 y = 0 , y = 1 y=0,y=1 y=0,y=1,且将 θ 0 \theta_0 θ0 替换为 b b b,后面的 θ 1 x 1 + , . . . , + θ n x n \theta_1x_1+,...,+\theta_nx_n θ1x1+,...,+θnxn 替换为 w 1 x 1 + , . . . , + w n x n w_1x_1+,...,+w_nx_n w1x1+,...,+wnxn (即 w T x w^Tx wTx),则 θ T x = w T x + b \theta^Tx=w^Tx+b θTx=wTx+b,进一步 h θ ( x ) = g ( θ T x ) = g ( w T x + b ) h_\theta(x)=g(\theta^Tx)=g(w^Tx+b) hθ(x)=g(θTx)=g(wTx+b)。也就是说除了标签 y = 0 y=0 y=0 变为了 y = − 1 y=-1 y=1,与逻辑回归的形式化表示没有区别。
h w , b ( x ) = g ( w T x + b ) h_{w,b}(x)=g(w^Tx+b) hw,b(x)=g(wTx+b)
上文 h θ ( x ) h_\theta(x) hθ(x)只和 θ T x \theta^Tx θTx的正负有关,而不关心 g ( z ) g(z) g(z) ,因此将 g ( z ) g(z) g(z)做一个简化,将其简单映射到 y = − 1 , y = 1 y=-1,y=1 y=1,y=1上,映射关系如下:
g ( x ) = { 1 z ≥ 0 − 1 z < 0 g(x)= \begin{cases} 1& z\geq0 \\ -1& z\lt0 \end{cases} g(x)={11z0z<0

2.3 线性分类的一个实例

下面举个简单的例子,一个二维平面(一个超平面,在二维空间中就是一条直线),如下图所示,平面上有两种不同的点,分别用两种不同的颜色表示,一种为粉色的点,另一种则为蓝色的点,红色的线表示一个可行的超平面。
例子图中这条红色的线把粉色的点和蓝色的点分开了。这红色的线就是我们上面所说的超平面,也就是说,这个所谓的超平面的确把这两种不同颜色的数据点分隔开来,在超平面一边的数据点所对应的 y y y 全是 – 1 –1 1,而在另一边全是 1 1 1。接着,我们令分类函数 f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b

显然,如果 f ( x ) = 0 f(x) = 0 f(x)=0,那么 x x x 是位于超平面上的点。我们不妨要求所有满足 f ( x ) < 0 f(x) < 0 f(x)<0 的点,其对应的 y y y 等于 – 1 –1 1,而 f ( x ) > 0 f(x) > 0 f(x)>0 则对应 y = 1 y = 1 y=1 的数据点。

当然,有些时候,或者说大部分时候数据并不是线性可分的,这个时候满足这样条件的超平面就根本不存在。这里先从最简单的情形开始推导,就假设数据都是线性可分的,亦即这样的超平面是存在的。更进一步,我们在进行分类的时候,将数据点 x x x 代入 f ( x ) f(x) f(x) 中,如果得到的结果小于 0 0 0,则赋予其类别 – 1 –1 1,如果大于 0 0 0, 则赋予类别 1 1 1。如果 f ( x ) = 0 f(x) = 0 f(x)=0,则很难办了,分到哪一类都不是。

(1) 咱们就要确定上述分类函数 f ( x ) = w ⋅ x + b f(x) = w · x+b f(x)=wx+b w ⋅ x w · x wx 表示 w w w x x x 的内积)中的两个参数 w w w b b b,通俗理解的话 w w w是法向量, b b b 是截距(再次说明:定义特征到结果的输出函数 u = w ⃗ ⋅ x ⃗ − b u =\vec w ·\vec x− b u=w x b,与我们最开始定义的 f ( x ) = w T x + b f(x) = w^Tx + b f(x)=wTx+b 实质是一样的)。

(2) 那如何确定 w w w b b b 呢?答案是寻找两条边界端或极端划分直线中间的最大间隔(之所以要寻最大间隔是为了能更好的划分不同类的点,下文你将看到:为寻最大间隔,导出 1 2 ∥ w ∥ 2 \frac{1}{2}{\Vert w \Vert}^2 21w2,继而引入拉格朗日函数和对偶变量,化为对单一因数对偶变量 的求解,当然,这是后话),从而确定最终的最大间隔分类超平面和分类函数。

(3) 进而把寻求分类函数 f ( x ) = w ⋅ x + b f(x) = w · x + b f(x)=wx+b 的问题转化为对 w 、 b w、b wb 的最优化问题,最终化为对偶因子的求解。

总结成一句话即是:从最大间隔出发(目的是为了确定法向量 w w w),转化为求对变量 w w w b b b 的凸二次规划问题。

3. 函数间隔与几何间隔

一般而言,一个点距离超平面的远近可以表示为分类预测的确信或准确程度。在超平面 w ⋅ x + b w · x + b wx+b 确定的情况下, ∣ w ⋅ x + b ∣ \vert w · x + b\vert wx+b能够相对的表示点 x x x 到距离超平面的远近,而 w ⋅ x + b w · x + b wx+b 的符号与类标记 y y y 的符号是否一致表示分类是否正确,所以,可以用量 y ⋅ ( w ⋅ x + b ) y · (w · x + b) y(wx+b) 的正负性来判定或表示分类的正确性和确信度。

于此,我们便引出了定义样本到分类间隔距离的函数间隔的概念。

3.1 函数间隔

给定一个训练样本 ( x i , y i ) (x_i,y_i) xi,yi, x x x是特征, y y y是结果标签, i i i表示第 i i i个样本,则定义函数间隔如下:
γ ^ i = y i ( w T x i + b ) \hat\gamma_i=y_i(w^Tx_i+b) γ^i=yi(wTxi+b)
可想而知,当 y i = 1 y_i=1 yi=1时,在我们的 g ( z ) g(z) g(z)定义中, w T x i + b ≥ 0 w^Tx_i+b\geq0 wTxi+b0 γ ^ i \hat\gamma_i γ^i的值实际上就是 ∣ w T x i + b ∣ \vert w^Tx_i+b\vert wTxi+b。反之亦然。为了使函数间隔最大(更大的信心确定该例是正例还是负例),当 y i = 1 y_i=1 yi=1时, w T x i + b w^Tx_i+b wTxi+b应该是个大整数,反之是个大负数。因此函数间隔代表了我们认为特征是正例还是负例的确信度。

接着,我们定义超平面 ( w , b ) (w,b) (w,b)关于训练数据集 T T T的函数间隔为超平面 ( w , b ) (w,b) (w,b)关于 T T T中所有样本点 ( x i , y i ) (x_i,y_i) xi,yi的函数间隔最小值,即定义全局样本上的函数间隔为:
γ ^ = min ⁡ i = 1...... m γ ^ i \hat\gamma=\min_{i=1......m}\hat\gamma_i γ^=i=1......mminγ^i
就是在训练样本上分类正例和负例确信度最小的那个函数间隔。

然而,上述定义的函数间隔虽然可以表示分类预测的正确性和确信度,但在选择分类超平面时,只有函数间隔还远远不够,因为如果成比例的改变 w w w b b b,如将他们改变为 2 w 2w 2w 2 b 2b 2b,虽然此时超平面没有改变,但函数间隔的值却变成了原来的 4 4 4 倍。其实,我们可以对法向量 w w w 加些约束条件,使其表面上看起来规范化。如此,将引出真正定义点到超平面的距离——几何间隔的概念。

3.2 几何间隔

如图所示,假设有了 B B B点所在的 w T x + b = 0 w^Tx+b=0 wTx+b=0分割面。
在这里插入图片描述图中任何其他一点,比如 A A A到该面的距离以 γ i \gamma_i γi表示,假设 B B B就是 A A A在分割面上的投影。已知向量 B A BA BA的方向是 w w w(分割面的梯度),单位相邻是 w ∥ w ∥ \frac{w}{\Vert w \Vert} ww A A A点是 ( x i , y i ) (x_i,y_i) xi,yi,所以 B B B点是 x = x i − γ i w ∥ w ∥ x=x_i-\gamma_i\frac{w}{\Vert w \Vert} x=xiγiww,带入 w T x + b = 0 w^Tx+b=0 wTx+b=0得:
w T ( x i − γ i w ∥ w ∥ ) + b = 0 w^T(x_i-\gamma_i\frac{w}{\Vert w \Vert})+b=0 wT(xiγiww)+b=0
进一步得到
γ i = w T x i + b ∥ w ∥ = ( w ∥ w ∥ ) T x i + b ∥ w ∥ \gamma_i=\frac{w^Tx_i+b}{\Vert w \Vert}=\left(\frac{w}{\Vert w \Vert}\right)^Tx_i+\frac{b}{\Vert w \Vert} γi=wwTxi+b=(ww)Txi+wb
γ i \gamma_i γi实际上就是点到平面的距离。
通常,对于训练集 ( x i , y i ) (x_i,y_i) xi,yi,定几何间隔为:
γ i = y i ( ( w ∥ w ∥ ) T x i + b ∥ w ∥ ) \gamma_i=y_i\left(\left(\frac{w}{\Vert w \Vert}\right)^Tx_i+\frac{b}{\Vert w \Vert}\right) γi=yi((ww)Txi+wb)
∥ w ∥ = 1 \Vert w \Vert=1 w=1时,就是函数间隔。
同样,定义全局样本上的几何间隔为:
γ = min ⁡ i = 1...... m γ i . \gamma=\min_{i=1......m}\gamma_i. γ=i=1......mminγi.

支持向量机(SVM)的初步了解到此为止。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值