引入:
1、 数据线性不可分;
2、 映射到高维依然不是线性可分
3、 出现噪声。
如图:

对原始问题变形得到#2:

进行拉格朗日转换:

其中α和r是拉格朗日因子,均有不小于0的约束。
按照之前的对偶问题的推导方式,先针对w,b最小化,然后再针对α最大化,得到新的对偶问题:

求解得到α之后,w仍然按公式给出,但是截距b的计算方式要改变。

KKT中的互补条件也变为了:【有待深入理解其含义】



KKT的理解:【首先得注意:(1)αi与样本(x(i),y(i))是一一对应的;(2)αi>=0】

由对w的偏导得到:

(a)

这个约束可以用来在得到α之后求w

而对b的偏导得到:

这个已经进入优化的约束条件。

而根据w的计算公式(a)可以得知,w的计算其实只依赖αi>0大于0的样本,这些样本就称为支持向量(对于软件隔分类也是一样)。

对于线性可分支持向量机,KKT的另外三个约束条件为:

其中:

  

最优解满足:函数距离大于1的大多数样本(gi(w)>0),其对应的αi=0,函数距离等于的1的样本(gi(w)=0,支持向量),其对应的αi>0

对于软间隔分类,KKT的另外三个约束条件为:

最优解满足:函数距离大于1的大多数样本(gi(w)>0),其对应的αi=0,函数距离等于的1的样本(gi(w)=0,支持向量),其对应的0<αi<C

      函数距离小于的1的样本(gi(w)=0,支持向量),其对应的αi=C

这些条件用于判断SMO算法是否收敛。

第一个式子表明在两条间隔线外的样本点前面的系数为0,离群样本点前面的系数为C,

而在超平面两边的最大间隔线上的样本点前面系数在(0,C)上。

支持向量包括αi=C的点吗?我觉得包括,毕竟它影响到了w的计算

软间隔分类——SVM的更多相关文章

  1. 线性可分支持向量机与软间隔最大化--SVM(2)

    线性可分支持向量机与软间隔最大化--SVM 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 我们说可以通过间隔最 ...

  2. SVM核函数与软间隔

    核函数 在上文中我们已经了解到使用SVM处理线性可分的数据,而对于非线性数据需要引入核函数的概念它通过将数据映射到高维空间来实现线性可分.在线性不可分的情况下,支持向量机通过某种事先选择的非线性映射( ...

  3. 支持向量机(SVM)的推导(线性SVM、软间隔SVM、Kernel Trick)

    线性可分支持向量机 给定线性可分的训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习到的分离超平面为 \[w^{\ast }x+b^{\ast }=0\] 以及相应的决策函数 \[f\le ...

  4. 5. 支持向量机(SVM)软间隔

    1. 感知机原理(Perceptron) 2. 感知机(Perceptron)基本形式和对偶形式实现 3. 支持向量机(SVM)拉格朗日对偶性(KKT) 4. 支持向量机(SVM)原理 5. 支持向量 ...

  5. 支持向量机 (二): 软间隔 svm 与 核函数

    软间隔最大化(线性不可分类svm) 上一篇求解出来的间隔被称为 "硬间隔(hard margin)",其可以将所有样本点划分正确且都在间隔边界之外,即所有样本点都满足 \(y_{i ...

  6. 机器学习,详解SVM软间隔与对偶问题

    今天是机器学习专题的第34篇文章,我们继续来聊聊SVM模型. 我们在上一篇文章当中推导了SVM模型在硬间隔的原理以及公式,最后我们消去了所有的变量,只剩下了\(\alpha\).在硬间隔模型当中,样本 ...

  7. SVM中的软间隔最大化与硬间隔最大化

    参考文献:https://blog.csdn.net/Dominic_S/article/details/83002153 1.硬间隔最大化 对于以上的KKT条件可以看出,对于任意的训练样本总有ai= ...

  8. SVM支持向量机——核函数、软间隔

    支持向量机的目的是寻找一个能讲两类样本正确分类的超平面,很多时候这些样本并不是线性分布的. 由此,可以将原始特征空间映射到更高维的特征空间,使其线性可分.而且,如果原始空间是有限维,即属性数量有限, ...

  9. 支持向量机(SVM)必备概念(凸集和凸函数,凸优化问题,软间隔,核函数,拉格朗日乘子法,对偶问题,slater条件、KKT条件)

    SVM目前被认为是最好的现成的分类器,SVM整个原理的推导过程也很是复杂啊,其中涉及到很多概念,如:凸集和凸函数,凸优化问题,软间隔,核函数,拉格朗日乘子法,对偶问题,slater条件.KKT条件还有 ...

随机推荐

  1. Pandas截取列的一部分

    以股票代码为例: 型式为:6位数字+"."+交易所代码,如600028.SH 如只需保留前6位: pattern = '(\w+)(?:.SZ|.SH)$' df['股票代码'] ...

  2. Intellij IDEA 设置启动JVM参数

    目录 采用CMS垃圾回收配置: 采用G1垃圾回收配置: 参数说明: 通用参数: CMS机制才有的参数: G1机制才有的参数: 参考: 打开 IDEA 安装目录,看到有一个 bin 目录,其中有两个 v ...

  3. DDD之BoundedContext

    原文 BoundedContext Bounded Context is a central pattern in Domain-Driven Design. It is the focus of D ...

  4. 容器工厂(原型&单例)

    上一篇讲的是容器工厂的原型. 我们可以不必通过new关键之创建实例,可以直接取容器里面的实例. 我们可以发现,在对比他们的地址值的时候,他们是相同的为true. 如果我们需要的是不一样的呢.也就是有一 ...

  5. 【Nodejs】【node.js 安装 和 配置Sublime Text的Node.js】

    [一] [安装nodejs] 第一步:下载安装文件: https://nodejs.org/en/download/ 第二步:安装nodejs 下载完成之后,双击"node-v6.10.1- ...

  6. Vue:(四)Ajax(Vue-Resource)

    Vue 要实现异步加载需要使用到 vue-resource 库.(挂载到vue实例上) (一)Vue-Resource引入 <script src="https://cdn.stati ...

  7. Django 编写模板并渲染的示例

    >>> from django.template import Template, Context >>> raw_template = ""& ...

  8. postman(八):使用newman来执行postman脚本

    通过之前的了解,我们知道postman是基于javascript语言编写的,而导出的json格式的postman脚本也无法直接在服务器运行,它需要在newman中执行(可以把newman看做postm ...

  9. Python自学:第三章 访问列表元素

    #输出并首字母大写 bicycles = ['trek','cannondale','redline','specialized'] print(bicycles[0].title()) 输出为: T ...

  10. android Studio 出现:Unable to resolve dependency for ':app@debug/compileClasspath'

    li经千辛万苦,我的新工程gradle搞定了 但是却在变异的时候告诉我 Unable to resolve dependency for ':app@debug/compileClasspath'xx ...