SVM支持向量机-ML EveryDay

SVM,全称是support vector machine,中文名叫支持向量机。

SVM是一个面向数据的分类算法,它的目标是为确定一个分类超平面,从而将不同的数据分隔开。

  1. 所谓支持向量机,顾名思义,分为两个部分了解,一什么是支持向量(简单来说,就是支持 or 支撑平面上把两类类别划分开来的超平面的向量点),二这里的“机”是什么意思。我先来回答第二点:这里的“机(machine,机器)”便是一个算法。在机器学习领域,常把一些算法看做是一个机器,如分类机(当然,也叫做分类器),而支持向量机本身便是一种监督式学习的方法(什么是监督学习与非监督学习),它广泛的应用于统计分类以及回归分析中。
  2. 扩展:支持向量机学习方法包括构建由简至繁的模型:线性可分为线性支持向量机非线性支持向量机。当训练数据线性可分时,通过硬间隔最大化,学习一个线性的分类器,即线性可分支持向量机,又称为硬间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化,也学习一个线性的分类器,即线性支持向量机,又称为软间隔支持向量机;当训练数据线性不可分时,通过使用核技巧及软间隔最大化,学习非线性支持向量机。

在讲SVM之前,先弄清楚一个概念:线性分类器。

  • 这里我们考虑的是一个两类的分类问题,数据点用 x 来表示,这是一个 n 维向量,而类别用 y 来表示,可以取 1 或者 -1 ,分别代表两个不同的类。一个线性分类器就是要在 n 维的数据空间中找到一个超平面,其方程可以表示为:

  • 两类问题的分类通常用一个实值函数f:(R^n即指n唯平面)按照这样的方式操作:当f(x)>=0,输入想x=(x1,...xn)‘赋给正类,否则赋给负类,考虑当f(x),x属于X 是线性函数的情况,函数可以写为:f(x)=<w,b> + b。这个式子的几何解释是,<w,x>+b=0所定义的超平面讲输入空间X(各种点)分为两半。

SVM 通过使用最大分类间隙Maximum Margin Classifier 来设计决策最优分类超平面

SVM具体算法流程,如下所示:

  1. 根据初始条件构造初始训练样本集, 保证至少包含有一个正例样本和一个负例样本;
  2. 根据已知训练样本集寻找最优分类超平面, 设计SVM 分类器;
  3. 如果与分界面邻近的缝隙中仍有样本点, 则选择离分类边界最近的样本进行评价, 将该样本加入训练样本集, 并回到第2 步;
  4. 从全部训练样本中重复随机选择一个样本进行评价, 并将该样本加入训练集(对已评价过的样本只计数, 不用再次评价) , 利用分类器对样本进行评价, 若分类器的评价结果与真实评价不一致, 则回到第2 步;
  5. 重复第4 步, 若连续N 次评价一致, 算法停止.

SVM的核函数

对于非线性的情况,SVM 的处理方法是选择一个核函数 κ(⋅,⋅) ,通过将数据映射到高维空间,来解决在原始空间中线性不可分的问题。由于核函数的优良品质,这样的非线性扩展在计算量上并没有比原来复杂多少,这一点是非常难得的。当然,这要归功于核方法——除了 SVM 之外,任何将计算表示为数据点的内积的方法,都可以使用核方法进行非线性扩展。

核函数通过把数据映射到高维空间来增加第一节所述的线性学习器的能力,使得线性学习器对偶空间的表达方式让分类操作更具灵活性和可操作性。我们知道,训练样例一般是不会独立出现的,它们总是以成对样例的内积形式出现,而用对偶形式表示学习器的优势在为在该表示中可调参数的个数不依赖输入属性的个数,通过使用恰当的核函数来替代内积,可以隐式得将非线性的训练数据映射到高维空间,而不增加可调参数的个数(当然,前提是核函数能够计算对应着两个输入特征向量的内积)。

简而言之:在线性不可分的情况下,支持向量机通过某种事先选择的非线性映射(核函数)将输入变量映射到一个高维特征空间,在这个空间中构造最优分类超平面。我们使用SVM进行数据集分类工作的过程首先是同预先选定的一些非线性映射将输入空间映射到高维特征空间:

    使得在高维属性空间中有可能最训练数据实现超平面的分割,避免了在原输入空间中进行非线性曲面分割计算。SVM数据集形成的分类函数具有这样的性质:它是一组以支持向量为参数的非线性函数的线性组合,因此分类函数的表达式仅和支持向量的数量有关,而独立于空间的维度,在处理高维输入空间的分类时,这种方法尤其有效。

扫描二维码关注公众号,回复: 9972333 查看本文章
发布了52 篇原创文章 · 获赞 27 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_37457432/article/details/89889540
今日推荐