machine learningData science

【机器学习】支持向量机:SVM,support vector m

2021-09-21  本文已影响0人  宅家学算法

  SVM是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机(感知机有无数个,间隔最大只有一个)。SVM 适合中小型数据样本、非线性、高维的分类问题。

  • 超平面:将不同样本(二分类)分隔开的平面,可图中实线。
  • 最大超平面:除了将两类样本分别分割在该超平面的两侧,而且保证两侧距离超平面最近的样本点到超平面的距离被最大化了。
  • 支持向量:样本中距离超平面最近的一些点,参考图中红色实心和红色空心点。
  • 求解图中两条虚线的间隔最大化,因为距离最大犯错的几率比较小,更具鲁棒性。


    支持向量机

  SVM试图寻找一个最优的决策边界,距离两个类别最近的样本最远。SVM还包括核技巧,这使它成为实质上的非线性分类器(定义中讲到SVM的基本模型是一个线性分类器,此处讲的是针对线性不可分的数据集加上核函数的SVM可以看作一个非线性分类器)。SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。

1.理解

1.1 简易求解理解

  假设样本集如下,yi为类标记,当它等于+1时为正例;为-1时为负例。同时假设训练数据集是线性可分的。

样本集,xi为特征向量
  划分超平面为:
超平面
  其中,w = {w1, w2, ... , wd}是一个法向量,决定了超平面的方向;d是特征值的个数;X为训练样本;b为位移项,决定了超平面和原点之间的距离。
  • 知识点:点(x, y)到直接Ax + By + C = 0的距离d如下:
    点到直线的距离
    扩展到n维,x = (x1, x2, ... , xn)到直线(面)wx + b = 0的距离如下:
    多维点到直线(面)距离
    其中,||w||等于:
    向量2范数,可理解为向量长度的绝对值

推演辅助:参考首张图SVM需要求解的是wx+b=1wx+b=-1之间的最大距离,假设点A在wx+b=1上,则最大距离为点A到wx+b=-1的距离:

最大距离推演

1.2 常见求解理解

  几何间隔:对于给定数据集T和超平面,定义超平面关于样本点(xi, yi)的几个间隔为

几何间隔

辅助理解

  • 推演步骤1:假设所有样本点到超平面最小的距离为r,则
    假设到超平面最小距离为r
  • 推演步骤2:两边同时除去最小的距离为r,得
    不等式两边同时除去r
  • 推演步骤3:不等式两边同时乘y,注意y正、负不同情况,得:


    不等式两边同时乘y
  • 推演步骤4:如下


    证明y(w*x+b)>0
  • 推演步骤5:因为|y|=1,则
    几何间隔

2.算法原理

2.1 线性算法原理

  已知 SVM 优化的主问题是:


优化问题

2.2 非线性算法原理:核函数

  对于线性不可分的数据集,如下图,SVM往往会选择一个核函数来处理。


线性不可分

  处理思路一般是将二维线性不可分样本映射到高维空间中,让样本点在高维空间线性可分,比如:


高维展示 分割超平面函数
  • 核函数的作用:
    低维空间映射到高维空间后维度可能会很大,如果将全部样本的点乘全部计算好,这样的计算量太大了,有了核函数(能够将特征空间的内积等于它们在原始样本空间中通过函数计算)就不需要计算高维甚至无穷维空间的内积了。
  • 常用的核函数:
    线性核LR(主要用于线性可分的情形)、高斯核RBF(主要用于线性不可分的情形)、多项式核,一般情况下高斯核效果是不会差于Linear但是时间上高斯核会耗费更多,
  • 吴恩达的见解:
    如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM;
    如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel;
    如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况。

3.总结

上一篇 下一篇

猜你喜欢

热点阅读