导读

昨天详细谈了谈最简单的SVM,相比较于今天要讲的Soft Margin SVM来说,昨天讲的其实是Hard Margin SVM,没看过的朋友们可以点击这里:

【机器学习】今天想跟大家聊聊SVM

为什么提出Soft Margin SVM

还是举一个例子吧

该点属于蓝色类别,所以决策线如图所示。但是这个决策边界如果运用到现实环境中的话,肯定会有很大的误分类点。也就是该分类线没有泛化能力。关于上述的情况,其实我们的理想分类线应该为:

虽然在训练集中分类效果不好,但是它具有一定的泛化能力!毕竟我们的模型最终都是要用到现实生活中去的。

再比如存在线性不可分的点,但还是理想情况还是可以分的情况,如

而能解决上述2种问题的SVM就被成为Soft Margin SVM,允许一些点进行错误分类。

Soft Margin SVM理论

我们先回顾下之前的SVM(Hard Margin SVM)的优化公式:

像上述距离的两种情况不能分类的具体原因就是该条件的限制:

现在我们允许一些点犯错,也就是允许一些点不满足这个公式,放放水,所以对每个点引入一个松弛变量(大于等于0),使得

+ 它的松弛变量 >= 1

即可,转换下公式为

 >= 1 - 它的松弛变量

上述式子的专业公式为:

但是松弛变量也不能太大,得需要有东西看着它,怎么看着呢?当然就是用目标函数啦。又因为每个数据点都有自己的松弛变量,所以需要需要求和作为最终目标函数的一部分:

但是这样的目标函数

表示a和b重要性是相同的。但是实际上a,b是有各自的权重的,但是这里其实只要在b部分加个权重C即可:

当C越大时,代表主要是优化b部分,所以就对于b项很严格,最终就使得结果越接近Hard Margin SVM。反之,当C越小时,代表主要优化a部分,就对于b宽松很多,最终就是的结果非常的Soft Margin SVM。如何选择C值,自己调试即可。

所以最终的完整目标函数为:

SVM正则化

正则化,听起来有难度的赶脚,但是实际上很简单,比如上述的目标函数就是L1正则:

这里的L1正则说的是松弛变量的幂。那样这样就很好理解L2正则啦:

常用的是L2正则,个人觉得是实验效果决定的结果吧。

代码实践

这里用的是sklearn来实践的

数据介绍

初始化SVM C = 1e9

SVM还有很多参数,感兴趣的可以自行了解哈。

可视化

改变C的值,C = 0.01

注意到该点的分类变化。


更多精彩内容,请关注 深度学习自然语言处理 公众号,就是下方啦!跟随小博主,每天进步一丢丢!哈哈!

【机器学习】今天详细谈下Soft Margin SVM和 SVM正则化相关推荐

  1. Python机器学习:SVM003Soft Margin和SVM(线性)的正则化

    hard margin 两条直线,决策边界需要有泛化能力.. 线性不可分 我们需要拥有容错能力的SVM Soft Margin SVM 给条件宽松一下 可以允许一些点在虚线和直线之间 需要对yita进 ...

  2. 机器学习入门学习笔记:(4.1)SVM算法

    前言 支持向量机(Support Vector Machine,简称SVM)可以说是最经典的机器学习算法之一了.这几天再看SVM,参考了一些书籍和博客,这里把自己的笔记记录下来,以便以后复习查看. 间 ...

  3. 随机森林的特征 是放回抽样么_机器学习超详细实践攻略(10):随机森林算法详解及小白都能看懂的调参指南...

    一.什么是随机森林 前面我们已经介绍了决策树的基本原理和使用.但是决策树有一个很大的缺陷:因为决策树会非常细致地划分样本,如果决策树分得太多细致,会导致其在训练集上出现过拟合,而如果决策树粗略地划分样 ...

  4. 【转】 机器学习入门——浅谈神经网络

    [转] 机器学习入门--浅谈神经网络 本文转自:https://blog.csdn.net/bitjoy/article/details/50464989 先从回归(Regression)问题说起.我 ...

  5. 基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类)

    基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类) 一.数据集说明 训练样本来自于github上的EasyPR的c++版本,包含一万三千多张数字及大写字母的图片以及三千多张中 ...

  6. 【机器学习算法】支持向量机(support Vector Machine,SVM)

    目录 支持向量机 支持向量机概述 线性可分及线性不可分的问题 线性可分的支持向量机 线性不可分的支持向量机 支持向量机与神经网络之间的关系 处理两类以上的分类问题. 我的主页:晴天qt01的博客_CS ...

  7. 机器学习入门(十六):SVM——线性 SVM,间隔由硬到软

    从线性可分 SVM 到线性 SVM 从现实情况引出线性 SVM 线性可分 SVM,这种 SVM 学习的训练数据本身就是线性可分的--可以很清晰地在特征向量空间里分成正集和负集. 线性可分 SVM 正负 ...

  8. 机器学习超详细实践攻略(1):盘点scikit-learn里那些有趣又有用的彩蛋级入门数据集

    在机器学习算法的学习过程中,找到用来适合用来练手的数据集是我们面临的第一道门槛,毕竟俗话说得好,巧妇也难为无米之炊嘛. 为此,我在知乎上写过一篇回答: 机器学习需要的大量数据集从哪里找? 这篇回答主要 ...

  9. 机器学习入门学习笔记:(4.2)SVM的核函数和软间隔

    前言 之前讲了有关基本的SVM的数学模型(机器学习入门学习笔记:(4.1)SVM算法).这次主要介绍介绍svm的核函数.软间隔等概念,并进行详细的数学推导.这里仅将自己的笔记记录下来,以便以后复习查看 ...

  10. ML之SVM:SVM算法的简介、应用、经典案例之详细攻略

    ML之SVM:SVM算法的简介.应用.经典案例之详细攻略 目录 SVM算法的简介 1.SVM模型分类-线性可分.线性.非线性 2.SVM的决策边界 3.SVM中的核函数 4.SVM算法推导 1.1.S ...

最新文章

  1. EditText禁止输入回车
  2. Connect模块解析 转载
  3. Win7 64位系统 注册 ocx控件
  4. 网站收录慢的如“蜗牛”,是什么原因导致的?
  5. 阿里资深系统架构师九峰谈云计算
  6. java swing 左上角图标_科学网—Matlab: 学习GUI(修改窗口左上角图标而不warning) - 刘磊的博文...
  7. 计组之存储系统:8、Cache写策略(全写法、写回法、写分配法、非写分配法、多级Cache)
  8. 富文本功能实现vue3.0
  9. 麦克风音频服务器未响应,win7电脑插入麦克风后realtek高清晰音频管理器没有反应怎么办...
  10. 偏最小二乘法PLS(matlab自带代码)
  11. php编网页版计算器,php编程实现简单的网页版计算器功能
  12. 无法登陆skype显示无法找到服务器,无法登录 Lync,因为找不到此登录地址 - Skype for Business | Microsoft Docs...
  13. halcon之屌炸天的变形匹配(1)
  14. 个人管理 - 时间管理GTD流程图
  15. pytorch(7)——二十二种transforms数据预处理方法
  16. java面试之Jsp(面试必看)
  17. 防止ACCESS数据库被下载的一个通用解决方法:
  18. Java中环境变量的设置
  19. 陈春花发布声明,这场流量狂欢该到了收尾的时候
  20. 英语专业找计算机工作好找吗,我是商务英语专业,工作好找吗?

热门文章

  1. 使cmd窗口不自动关闭
  2. jQuery..1..基本使用..选择
  3. 腾讯微信惊天漏洞,利用手机号致帐号丢失无法找回!——论个人信息安全与防护...
  4. 位运算简介及实用技巧(二):进阶篇(1)
  5. 【leetcode】1018. 可被 5 整除的二进制前缀
  6. 服务器建立/删除信任公钥方法
  7. undefined symbol: PyFPE_jbuf
  8. Zookeeper启动失败,报错 can not open chanel to 2
  9. Python pycurl使用
  10. jsp 基本语法学习笔记