线性可分支持向量机与软间隔最大化--SVM


给定线性可分的数据集

假设输入空间(特征向量)为,输出空间为
输入
表示实例的特征向量,对应于输入空间的点;
输出
表示示例的类别。

我们说可以通过间隔最大化或者等价的求出相应的凸二次规划问题得到的分离超平面

以及决策函数:

但是,上述的解决方法对于下面的数据却不是很友好, 例如,下图中黄色的点不满足间隔大于等于1的条件

这样的数据集不是线性可分的, 但是去除少量的异常点之后,剩下的点都是线性可分的, 因此, 我们称这样的数据集是近似线性可分的
对于近似线性可分的数据集,我们引入了松弛变量,使得函数间隔加上松弛变量大于等于1。这样就得到了下面的解决方案:

其中,每个样本点都对应一个松弛变量, C > 0 称为惩罚参数。C越大,对误分类的点的惩罚越大。
这个解决方案旨在使得间隔最大化的同时减少误分类个数。下图是C对分类的影响,左图是大C, 右图是小C:

可以证明w是唯一的, 但是b不唯一,而是存在一个区间


下面来解决这个问题

首先引入拉格朗日函数(Lagrange Function):

他的对偶问题(参考拉格朗日对偶性(Lagrange duality))是极大极小问题, 首先求。对求导,解法如下:

代入得到:

问题转化为:

怎么求最优的w, b呢?
我们来看,原问题的KKT条件如下:

根据KKT条件的性质可以知道(参考拉格朗日乘子(Lagrange multify)和KKT条件):

所以可以求得


综上, 引入松弛变量后线性支持向量机算法为:

.

*我们引入的松弛变量去哪里了呢?为什么算法中没有了?
其实, 松弛变量在通过惩罚参数C隐式的作用。
我们可以改变C值,看看改变C哪些变量会随着改变。
增大C,由知, 就更有可能大于0, 再根据,松弛变量取0就更简单, 这样就没有约束作用了。对整个数据集来说相当于是小的约束作用。
反之也可推出约束作用更强。
可以用这张图来解释:

线性可分支持向量机与软间隔最大化--SVM(2)的更多相关文章

  1. 统计学习:线性可分支持向量机(SVM)

    模型 超平面 我们称下面形式的集合为超平面 \[\begin{aligned} \{ \bm{x} | \bm{a}^{T} \bm{x} - b = 0 \} \end{aligned} \tag{ ...

  2. svm 之 线性可分支持向量机

    定义:给定线性可分训练数据集,通过间隔最大化或等价的求解凸二次规划问题学习获得分离超平面和分类决策函数,称为线性可分支持向量机. 目录: • 函数间隔 • 几何间隔 • 间隔最大化 • 对偶算法 1. ...

  3. 统计学习2:线性可分支持向量机(Scipy实现)

    1. 模型 1.1 超平面 我们称下面形式的集合为超平面 \[\begin{aligned} \{ \bm{x} | \bm{a}^{T} \bm{x} - b = 0 \} \end{aligned ...

  4. 线性可分支持向量机--SVM(1)

    线性可分支持向量机--SVM (1) 给定线性可分的数据集 假设输入空间(特征向量)为,输出空间为. 输入 表示实例的特征向量,对应于输入空间的点: 输出 表示示例的类别. 线性可分支持向量机的定义: ...

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

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

  6. 软间隔分类——SVM

    引入:1. 数据线性不可分:2. 映射到高维依然不是线性可分3. 出现噪声.如图: 对原始问题变形得到#2: 进行拉格朗日转换: 其中α和r是拉格朗日因子,均有不小于0的约束.按照之前的对偶问题的推导 ...

  7. SVM中的间隔最大化

    参考链接: 1.https://blog.csdn.net/TaiJi1985/article/details/75087742 2.李航<统计学习方法>7.1节 线性可分支持向量机与硬间 ...

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

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

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

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

随机推荐

  1. dedecms调用当前栏目的子栏目及子栏目文章

    {dede:channelartlist}   <ul>     {dede:arclist titlelen='60' row='8'}       <img src=" ...

  2. eclipse中使用jstl

    错误提示为"can not find the tag library for http://java.sun.com/jsp/jstl/core" 这是我在练习把axis2和普通j ...

  3. vuejs+thinkphp5+phpsocketIO+timer数据及时更新

    1.安装thinkphp5.0以上版本包含workerman框架2.composer安装composer require workerman/phpsocket.io3.vue中调用需要加载weapp ...

  4. 用 Python监控了另一半的每天都在看的网站,我发现了一个秘密

    ​ 阅读文本大概需要 5 分钟. ! 需求: (1) 获取你对象chrome前一天的浏览记录中的所有网址(url)和访问时间,并存在一个txt文件中 (2)将这个txt文件发送给指定的邮箱地址(你的邮 ...

  5. 十六、JavaScript之%运算符

    一.代码如下 二.运行效果如下 <!DOCTYPE html> <html> <meta http-equiv="Content-Type" cont ...

  6. 七十二、SAP中内表的修改,添加条件语句,多条目修改

    一.代码如下 二.MODIFY执行前断点数据 三.查看到数据如下 四.往下单步走一步,发现有3条数据被修改 五.执行后修改如下

  7. 启用sql日志

    SHOW VARIABLES LIKE "general_log%"; -- 查询是否启用日志 SET GLOBAL general_log = 'ON';  -- 设置启用 SE ...

  8. 将已有微信小程序转换为多端应用

    文档地址 https://nervjs.github.io/taro/

  9. 通过Navicat Premium 实现Oracle的连接和基本操作

    一.Oracle的连接 以下为Navicat Premium连接Oracle数据库的教程 一.需要准备的软件(下载适合自己系统的软件) 1.Navicat premium 官方下载地址:http:// ...

  10. 201771010123汪慧和《面向对象程序设计Java》第十五周实验总结

    一.理论部分 1.JAR文件 (1)Java程序的打包:程序编译完成后,程序员将.class文件压缩打包为.jar文件后,GUI界面 程序就可以直接双击图标运行. (2).jar文件(Java归档)既 ...