SVM算法

作者: _Monk | 来源:发表于2018-05-20 16:57 被阅读0次

svm是一种用来进行分类的算法,如果待分类数据是线性可分的,就可以求解线性可分支持向量机来进行分类;如果待分类数据是线性不可分的,就可以通过求解线性向量机来进行分类;如果待分类数据是非线性的可以通过求解非线性支持向量机来进行分类。本文简单的讲解了每一种向量机应的求解方法。

基本概念


1. 超平面方程

图1. 超平面方程

2. 函数间隔

(1)一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度。点距离超平面的距离如何用数学方程表示?


3. 几何间隔


注意
  • 怎么从函数间隔推出的几何间隔?
  • 函数间隔可以表示分类预测的正确性及确信度,但是如果我们成倍的增大w和b,超平面并没有变,但是函数间隔会变大。为此,我们可以对函数间隔进行规约,使得间隔是确定的,为此引入了几何间隔。

4. 支持向量

线性可分支持向量机的支持向量
线性支持向量机的支持向量

求解支持向量机


超平面方程即为支持向量机

1. 线性可分支持向量机

训练集线性可分时,怎么求分离超平面方程?

(1)目标函数

为了能够正确的对数据集进行分类,我们需要使得几何间隔最大。对于线性可分的数据而言,线性可分分离超平面会有无穷多个,但是几何间隔最大的分离超平面是唯一的。这里的间隔最大化又称为硬间隔最大化,数学表达式如下:

图2. 目标函数
函数间隔和几何间隔有如下关系:
图3. 函数间隔和几何间隔关系
为此:目标函数可以转化为下式:

上式的最大化可以变为下式的最小化,最终的目标函数经过转化变成下式:
图4. 最终目标函数

(2)目标函数求解

上式是一个凸二次规划问题,可以使用拉格朗日对偶性,通过求解对偶问题得到上式的最优解。
求对偶问题解法如下:



对于对偶问题的求解可以使用序列最小优化算法(SMO),具体求解不作详细分析。

2. 线性支持向量机

(1)目标函数

对于线性非支持向量机的求解,上面求解线性可分支持向量机的求解是不适用的,因为上面的方法中的不等式约束并不能都成立,为了解决这个问题,需要修改硬间隔最大化,使其成为软间隔最大化。具体实现就是对每个样本点引入一个松弛变量,使函数间隔加上松弛变量大于等于1,所以线性可分支持向量机中的目标函数变为下式:

图4. 线性支持向量机目标函数

(2)目标函数的求解

参考上面的过程。

非线性支持向量机

  • 有时待分类的数据集是非线性的,这时可以使用非线性支持向量机来进行分类。
  • 对于非线性问题的求解,常用的方法是进行一个非线性变换,将非线性问题转化为一个线性问题,通过解变换后的线性问题的方法求解原来的非线性问题。
  • 线性分类方法求解非线性分类问题分为两步:
    • ① 首先使用一个变换将原空间的数据映射到新空间
    • ②在新空间里用线性分类学习的方法从训练数据中学习分类模型。
  • 核函数
    图5. 核函数定义
    注意:
    核技巧的想法是,在学习和预测中,只定义核函数,而不显示的定义映射函数。

TODO

参考资料

  1. 《机器学习》,周志华著。
  2. 《统计学习方法》,李航著。

相关文章

  • 机器学习小组第十周打卡

    学习目标 知识点描述:致敬真神:支持向量机 学习目标: SVM算法原理及数学推导 SVM算法中的核函数 SVM算法...

  • 11 SVM - SMO - 序列最小优化算法

    05 SVM - 支持向量机 - 概念、线性可分06 SVM - 线性可分模型算法和案例07 SVM - 软间隔模...

  • 必须掌握的算法

    逻辑回归 SVM XGBoost LDA FM FMM 推荐算法常用推荐算法

  • 支持向量机算法

    支持向量机(Support Vector Machine, SVM)是有监督分类算法。 一、SVM本质 (1)无数...

  • SVM算法

    svm是一种用来进行分类的算法,如果待分类数据是线性可分的,就可以求解线性可分支持向量机来进行分类;如果待分类数据...

  • SVM算法

    1、背景 1.1 最早是由Vladimir N. Vapnik 和 Alexey Ya. Chervonenkis...

  • SVM 算法

    1、参数解读 C 的作用类似于 1/λ,当 C 不是非常非常大的时候,它可以忽略掉一些异常点的影响,得到更好的决策...

  • SVM算法

    7.20:::::::硬间隔最大化(线性可分) 二分类问题 找到超平面 且是最优超平面(最大间距的超平面凸二次规...

  • SVM支持向量机

    一、SVM简述 SVM支持向量机(英文全称:support vector machine)是一个分类算法, 通过找...

  • 支持向量机/SVM(Support Vector Machine

    SVM,曾经是最为流行的机器学习算法,可以用于分类问题、回归问题及异常点检测问题。不仅如此,SVM的算法动机可以通...

网友评论

      本文标题:SVM算法

      本文链接:https://www.haomeiwen.com/subject/htltjftx.html