当前位置:   article > 正文

SVM原理概述二_svm 上下间隔不同

svm 上下间隔不同

前言

通过上篇博客举的例子,可以明白支持向量机的分类方法就是在数据集上,找到一个超平面作为决策边界,并且模型在数据上的分类误差尽可能小。这节将对SVM作进一步说明。

相关概念

  1. 支持向量(Support Vectors)
    离决策边界最近的那些点。决策边界就是我们找的最佳的那个能够分隔开两个种类的超平面,离这个决策边界最近的那些点就是支持向量。支持向量到决策边界的距离称之为Margin,找最佳的决策边界就是要最大化Margin。
  2. 超平面
    超平面是维度比其所在空间小一维的空间。如果空间是三维的,超平面就是二维的(类比于前面例子中的将样本点想象存在于三维空间中进行划分就是用一个平面)。如果空间是二维的,超平面就是一维的直线。
    超平面也就是分类时的决策边界,这个超平面将不同类别的数据分隔在它的两侧。

最大间隔分类器SVC

前面提到离决策边界最近的那些点是支持向量,支持向量到决策边界的距离称之为Margin,我们的目的是最大化Margin,也就是找到了最佳的决策边界。
用下图来进行说明:

在这里插入图片描述
假设决策边界的解析式为:
y = β 0 _0 0+ β 1 _1 1 x 1 {x_1} x1 + β 2 _2 2 x 2 {x_2} x2
任意一个样本到决策边界的距离distance有:
distance = ∣ β 0 + β 1 ∗ x 1 + β 2 ∗ x 2 ∣ β 1 2 + β 2 2 {|β_0 + β_1*x_1 + β_2*x_2|}\over{\sqrt{β^2_1+β^2_2}} β12+β22 β0+β1x1+β2x2 ≥Margin
我们希望模型分类结果更加好,所以希望最大化Margin,即Maxmize Margin,这个模型就是最大间隔分类器(Maximum Margin Classifier)。

如果是k维空间中,则有如下式子(Margin用M代替):

Maxmize M

distance = ∣ β 0 + β 1 ∗ x 1 + β 2 ∗ x 2 + . . . + β k ∗ x k ∣ β 1 2 + β 2 2 + . . . + β k 2 {|β_0 + β_1*x_1 + β_2*x_2+...+β_k*x_k|}\over{\sqrt{β^2_1+β^2_2+...+β^2_k}} β12+β22+...+βk2 β0+β1x1+β2x2+...+βkxk ≥M

把绝对值符号去掉,即:

if β 0 + β 1 ∗ x 1 + β 2 ∗ x 2 + . . . + β k ∗ x k β 1 2 + β 2 2 + . . . + β k 2 {β_0 + β_1*x_1 + β_2*x_2+...+β_k*x_k}\over{\sqrt{β^2_1+β^2_2+...+β^2_k}} β12+β22+...+βk2 β0+β1x1+β2x2+...+βkxk ≥M
y i y_i yi = +1

if β 0 + β 1 ∗ x 1 + β 2 ∗ x 2 + . . . + β k ∗ x k β 1 2 + β 2 2 + . . . + β k 2 {β_0 + β_1*x_1 + β_2*x_2+...+β_k*x_k}\over{\sqrt{β^2_1+β^2_2+...+β^2_k}} β12+β22+...+βk2 β0+β1x1+β2x2+...+βkxk ≤ -M
y i y_i yi = -1

β 1 2 + β 2 2 + . . . + β k 2 \sqrt{β^2_1+β^2_2+...+β^2_k} β12+β22+...+βk2 = ∥ β ∥ \|\beta\| β 所以,分母可简写为: ∥ β ∥ \|\beta\| β
最终:
y i ∥ β ∥ {y_i}\over{\|\beta\|} βyi * (β_0 + β_1x_1 + β_2x_2+…+β_k*x_k) ≥ M。

即在 y i ∥ β ∥ {y_i}\over{\|\beta\|} βyi * (β_0 + β_1x_1 + β_2x_2+…+β_kx_k) ≥ M时,Maxmize M。
如果,让 M * ∥ β ∥ \|\beta\| β = 1,则
y i {y_i} yi * (β_0 + β_1
x_1 + β_2x_2+…+β_kx_k) ≥ 1时,Minimize ∥ β ∥ \|\beta\| β(将Maxmize转换成了Minimize )

上述的最大间隔分类器的缺点:
① 当有新样本进入时,决策边界可能会有很大改变;
② 当数据线性不可分的时候,找不到决策边界。

软间隔分类器SVC

如果出现下面的情况,又该如何画线呢?

在这里插入图片描述

前面讲到的最大间隔分类器中,是不允许上边情况存在的(即,在图中两条虚线之间不允许存在任何样本 )。但现在对模型的容忍度变大,即允许上面图中样本分布的存在,那么就是下边两种情况:
① 分对了,只不过该样本在虚线和决策边界之间。到决策边界的距离0<d<M(0< ϵ i \epsilon_i ϵi<1)

② 分错了,该样本也在虚线和决策边界之间。到决策边界的距离-M<d<0(1< ϵ i \epsilon_i ϵi<2)

此时,引入一个松弛变量 ϵ i \epsilon_i ϵi
Maxmize M
y i ∥ β ∥ {y_i}\over{\|\beta\|} βyi * (β_0 + β_1x_1 + β_2x_2+…+β_k*x_k) ≥ M(1- ϵ i \epsilon_i ϵi)
∑ i = 1 n ϵ i \sum_{i=1}^{n} \epsilon_i i=1nϵi ≤ C且 ϵ i \epsilon_i ϵi ≥ 0

上述就是软间隔分类器,因为它允许部分样本存在于虚线内部。
这时候需要注意的点时:
① 当C越大,Margin越大,也就是模型的容忍度越大。即当C太大,就不拟合,C太小,过拟合。
② 决策边界只与支持向量有关

Maxmize M
y i ∥ β ∥ {y_i}\over{\|\beta\|} βyi * (β_0 + β_1x_1 + β_2x_2+…+β_k*x_k) ≥ M(1- ϵ i \epsilon_i ϵi)
∑ i = 1 n ϵ i \sum_{i=1}^{n} \epsilon_i i=1nϵi ≤ C且 ϵ i \epsilon_i ϵi ≥ 0
求解优化问题后得到:
SVC决策边界:
f(x) = β 0 _0 0 + ∑ i = 0 n α i < x , x i > \sum_{i=0}^{n} \alpha_i<x, x_i> i=0nαi<x,xi>
其中,<x, x_i>表示向量的点积;若 x i x_i xi不是支持向量, α i \alpha_i αi=0;若 x i x_i xi是支持向量, α i \alpha_i αi!=0。

如果有新的待测试的样本,新样本的f(x)>0就是+1类;新样本的f(x)<0就是-1类

支持向量机SVM

当样本分布线性不可分的时候,好像是找不到决策边界(线)的,如下图的分布情况:

在这里插入图片描述
此时,把这些样本想象是放在三维空间中的,再通过某种映射关系,将图中红色圆圈映射到别的位置,那么就可以很容易找到一个平面,将他们分隔开。如下图:通过某种映射关系将红色点映到别处,粉色的平面就可以将红色圆圈和蓝色三角分隔开。

在这里插入图片描述
f(x) = β 0 _0 0 + ∑ i = 0 n α i K ( x , x i ) \sum_{i=0}^{n} \alpha_iK(x, x_i) i=0nαiK(x,xi)

其中K就是核函数
SVM = SVC + 非线性核函数

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/430739
推荐阅读
相关标签
  

闽ICP备14008679号