支持向量机-引入及原理

Posted gezhuangzhuang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了支持向量机-引入及原理相关的知识,希望对你有一定的参考价值。

支持向量机(Support Vector Machines, SVM):是一种监督学习算法。处理二分类

  • 支持向量(Support Vector)就是离分隔超平面最近的那些点。
  • 机(Machine)就是表示一种算法,而不是表示机器。

线性可分数据集:将数据集分隔开的直线称为分隔超平面。我们希望找到离分隔超平面最近的点,确保它们离分隔面的距离尽可能远,这里点到分隔面的距离被称为间隔(margin)。

线性不可分数据集:利用核函数(kernel)将数据映射到高维,转化成线性可分

支持向量机 场景

  • 要给左右两边的点进行分类
  • 明显发现:选择D会比B、C分隔的效果要好很多。

技术分享图片

寻找最大间隔

分隔超平面是一条直线,点到超平面的距离 == 点到直线的距离

点到直线的距离公式

技术分享图片

理论推导(李航的统计学习方法):

技术分享图片

 

 

定义拉格朗日函数:

技术分享图片

技术分享图片

将目标函数有极大转换成求极小,就得到下面与之等价的对偶最优化问题

技术分享图片

但是几乎所有数据都不那么“干净”,引入松弛变量,允许数据点可以处于分隔面的错误一侧

此时新的约束条件则变为:

技术分享图片

技术分享图片

总的来说:

  技术分享图片表示松弛变量

  常量C是 惩罚因子, 表示离群点的权重(用于控制“最大化间隔”和“保证大部分点的函数间隔小于1.0” )

  • C值越大,表示离群点影响越大,就越容易过度拟合;反之有可能欠拟合。
  • 我们看到,目标函数控制了离群点的数目和程度,使大部分样本点仍然遵守限制条件。
  • 例如:正类有10000个样本,而负类只给了100个(C越大表示100个负样本的影响越大,就会出现过度拟合,所以C决定了负样本对模型拟合程度的影响!,C就是一个非常关键的优化点!)

 SVM中的主要工作就是要求解 alpha.

 

以上是关于支持向量机-引入及原理的主要内容,如果未能解决你的问题,请参考以下文章

支持向量机(SVM)的原理推导及解释

多核支持向量机原理及实现

机器学习--支持向量机 (SVM)算法的原理及优缺点

支持向量机原理及R语言实现

支持向量机(SVM)的一个简单应用实例及matlab代码

支持向量机基本原理 matlab程序及其应用