机器学习-支持向量机(SVM)入门

本节文章主要是梳理一下支持向量机相关知识点,整合其他作者的内容,进行简化便于理解;

目录

0.了解SVM(概念,类别,特点)

1.线性可分SVM和拉格朗日函数

  • 距离的计算公式推导
  • 拉格朗日函数求解距离

2.非线性SVM和核函数

3.线性SVM(软间隔支持向量机)

4.优缺点及适用场景

5.小结



0.了解SVM:

**0.1定义

支持向量机(Support Vector Machine, SVM),通俗来讲,它是一种二分类模型,其基本模型定义为特征空间上的间隔最大的线性分类器,其学习策略便是间隔最大化,最终可转化为一个凸二次规划问题的求解。

  • 简而言之:支持向量机就是找到一个 分割界面,放到两个类别之间,把它们分开;
  • 二维上,是一条直线, 三维上就一个平面, 四维上就是一个理论上三维的界面。
  • 思想:如果在低维不可分时,就先通过核函数把低维数据映射到高维,高维上变成线性可分,然后在高维上再用支持向量机进行分,简单的理解支持向量机就是解决线性可分的问题的;
  • 支持向量(Support Vetor):就是离分隔超平面最近的哪些点。
  • 寻找较大间隔:就是寻找较大化支持向量到分隔超平面的距离,在此条件下求出分隔超平面。

0.2数据分类类别SVM

  1. 线性可分SVM,当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分SVM,表示可以用一根线非常清晰的划分两个区域
  2. 线性SVM,当训练样本近似线性可分时,通过软间隔最大化,学习一个线性SVM,表示用一根线划分区域后,可能存在误判点,但还是线性的;线到支持向量的距离不一定是最小的,但忽略其他非规则的支持向量。
  3. 非线性SVM, 当训练样本线性不可分时,通过核技巧和软间隔最大化,学习一个非线性SVM,表示使用核函数之后,把低维的非线性转换为高维线性

0.3SVM特点

  1. 非线性映射是SVM方法的理论基础,SVM利用内积核函数代替向高维空间的非线性映射;
  2. 对特征空间划分的最优超平面是SVM的目标较大化分类边际的思想是SVM方法的核心
  3. 支持向量是SVM的训练结果,在SVM分类决策中起决定作用的是支持向量
  4. 无任何前提假设,不涉及概率测度;
  5. SVM算法对大规模训练样本****难以实施
  6. 需要对数据提前归一化是基于距离的模型,LR也需要归一化

1.线性可分SVM:

转:https://blog.csdn.net/qq_35992440/article/details/80987664
机器学习-支持向量机(SVM)入门
我们看一个简单的二维空间的例子,O代表正类,X代表负类样本是线性可分的,但是很显然不只有这一条直线可以将样本分开,而是有无数条,我们所说的线性可分支持向量机就对应着能将数据正确划分并且间隔最大的直线
机器学习-支持向量机(SVM)入门
第一个问题,为什么要间隔最大呢?
一般来说,一个点距离分离超平面的远近,可以表示分类预测的确信度,如图中的A B两个样本点,B点被预测为正类的确信度要大于A点,所以SVM的目标是寻找一个超平面,使得离超平面较近的异类点之间能有更大的间隔,即不必考虑所有样本点,只需让求得的超平面使得离它近的点间隔最大。
第二个问题,怎么计算间隔?
在样本空间中,划分超平面可通过如下线性方程来描述:
机器学习-支持向量机(SVM)入门
其中w为法向量,决定了超平面的方向b为位移量,决定了超平面与原点的距离
假设超平面能将训练样本正确地分类,即对于训练样本(xi,yi),满足以下公式:
机器学习-支持向量机(SVM)入门
公式被称为最大间隔假设,yi=+1 表示样本为正样本,yi=−1 表示样本为负样本;
式子前面选择>=+1,<=-1只是为了计算方便,原则上可以是任意常数,但无论是多少,都可以通过对 w 的变换使其为 +1 和 -1 。实际上该公式等价于;yi(WTxi+b)≥+1
机器学习-支持向量机(SVM)入门
如上图:距离超平面(粗线)最近的几个样本点满足yi(WTxi+b)=1,它们被称为“支持向量”。
虚线称为边界,两条虚线间的距离称为间隔(margin)。

1.1距离的计算公式推导

间隔的计算:它就等于两个异类支持向量的差在 W方向上的投影,W方向是指上图所示实线的法线方向。即:
机器学习-支持向量机(SVM)入门
至此,我们求得了间隔;但是SVM的思想是使得间隔最大化,所有我们要的就是​ :
机器学习-支持向量机(SVM)入门
最大化 2/||w|| ,也就是最小化 ||w||,然后我们可以简化公式为:
机器学习-支持向量机(SVM)入门
这就是支持向量机的基本型,是一个凸二次规划问题,可以采用拉格朗日乘子法对其对偶问题求解

1.2拉格朗日函数求解距离

拉格朗日函数为:
机器学习-支持向量机(SVM)入门
首先,对W,b求导得:
机器学习-支持向量机(SVM)入门
然后,带入拉格朗日函数(8),得:
机器学习-支持向量机(SVM)入门
再然后呢,原本的问题,就转换成了关于α的问题:
机器学习-支持向量机(SVM)入门
结论,对于任意的训练样本 (xi,yi):

  • αi=0,则其不会在公式(13)中的求和项中出现,也就是说,它不影响模型的训练
  • αi>0,则yif(xi)−1=0yif(xi)−1=0,也就是yif(xi)=1yif(xi)=1,即该样本一定在边界上,是一个支持向量

支持向量机的重要特征:当训练完成后,大部分样本都不需要保留,最终模型只与支持向量有关

2.非线性支持向量机和核函数:

  1. 对于非线性问题,线性可分支持向量机并不能有效解决,要使用非线性模型才能很好地分类,有时候需要使用一条椭圆曲线(非线性模型)将它们分开;
  2. 非线性问题往往不好求解,所以希望能用解线性分类问题的方法求解,因此可以采用非线性变换,将非线性问题变换成线性问题
  3. 对于这样的问题,可以将训练样本从原始空间映射到一个更高维的空间使得样本在这个空间中线性可分;

ϕ(x)表示将 x 映射后的特征向量,于是在特征空间中,划分超平面所对应的的模型可表示为:
机器学习-支持向量机(SVM)入门
机器学习-支持向量机(SVM)入门
这里的函数 κ(xi,xj) 就是核函数在实际应用中,通常人们会从一些常用的核函数里选择(根据样本数据的不同,选择不同的参数,实际上就得到了不同的核函数):

机器学习-支持向量机(SVM)入门

3.线性SVM(软间隔支持向量机):

  • 在前面的讨论中,我们假设训练样本在样本空间或者特征空间中是线性可分的,但在现实任务中往往很难确定合适的核函数使训练集在特征空间中线性可分;
  • 即使瞧好找到了这样的核函数使得样本在特征空间中线性可分,也很难判断是不是由于过拟合造成;
  • 线性不可分意味着某些样本点 (xi,yi) 不能满足间隔大于等于1的条件,样本点落在超平面与边界之间

为解决这一问题,可以对每个样本点引入一个松弛变量 ξi≥0,使得间隔加上松弛变量大于等于1,这样约束条件变为:
机器学习-支持向量机(SVM)入门
机器学习-支持向量机(SVM)入门

  • 其中 C>0为惩罚参数C值大时对误分类的惩罚增大, C值小时对误分类的惩罚减小
  • 公式(21)包含两层含义:使
    1/2||W||^2尽量小
    间隔尽量大,同时使误分类点的个数尽量小,C是调和两者的系数
  • 有了公式(21),可以和线性可分支持向量机一样考虑线性支持向量机的学习过程,此时,线性支持向量机的学习问题变成如下凸二次规划问题的求解(原始问题):
    机器学习-支持向量机(SVM)入门

优点

  • 泛化错误率低,计算开销小,结果易于解释;
  • 可以解决高维问题,即大型特征空间;
  • 能够处理非线性特征的相互作用;
  • 无需依赖整个数据;

缺点

  • 对参数及核函数的选择较敏感;
  • 如果不进行修改只适用于二分类问题;

适用场景

  • 邮件系统中的垃圾邮件
  • 入侵检测系统中的网络行为

5.小结:

转:https://blog.csdn.net/ajianyingxiaoqinghan/article/details/72897399

  1. 用ωT+b定义分类函数;
  2. 求ω,b;
  3. 为了寻找最大间隔,引出1/2∥ω∥^2;
  4. 引入拉格朗日因子,化为对拉格朗日乘子α的求解;
  5. 求解过程中,处理一系列最优化与凸二次规划的问题;
  6. 求解α时可以使用快速学习方法SMO;
  7. 处理非线性情况时,使用核函数;
  8. 核函数在低维计算,等效了高维表现,避免了直接映射到高维计算时可能出现的维度爆炸现象;