【机器学习】今天详细谈下Soft Margin SVM和 SVM正则化
导读
昨天详细谈了谈最简单的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正则化相关推荐
- Python机器学习:SVM003Soft Margin和SVM(线性)的正则化
hard margin 两条直线,决策边界需要有泛化能力.. 线性不可分 我们需要拥有容错能力的SVM Soft Margin SVM 给条件宽松一下 可以允许一些点在虚线和直线之间 需要对yita进 ...
- 机器学习入门学习笔记:(4.1)SVM算法
前言 支持向量机(Support Vector Machine,简称SVM)可以说是最经典的机器学习算法之一了.这几天再看SVM,参考了一些书籍和博客,这里把自己的笔记记录下来,以便以后复习查看. 间 ...
- 随机森林的特征 是放回抽样么_机器学习超详细实践攻略(10):随机森林算法详解及小白都能看懂的调参指南...
一.什么是随机森林 前面我们已经介绍了决策树的基本原理和使用.但是决策树有一个很大的缺陷:因为决策树会非常细致地划分样本,如果决策树分得太多细致,会导致其在训练集上出现过拟合,而如果决策树粗略地划分样 ...
- 【转】 机器学习入门——浅谈神经网络
[转] 机器学习入门--浅谈神经网络 本文转自:https://blog.csdn.net/bitjoy/article/details/50464989 先从回归(Regression)问题说起.我 ...
- 基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类)
基于机器学习的车牌识别系统(Python实现基于SVM支持向量机的车牌分类) 一.数据集说明 训练样本来自于github上的EasyPR的c++版本,包含一万三千多张数字及大写字母的图片以及三千多张中 ...
- 【机器学习算法】支持向量机(support Vector Machine,SVM)
目录 支持向量机 支持向量机概述 线性可分及线性不可分的问题 线性可分的支持向量机 线性不可分的支持向量机 支持向量机与神经网络之间的关系 处理两类以上的分类问题. 我的主页:晴天qt01的博客_CS ...
- 机器学习入门(十六):SVM——线性 SVM,间隔由硬到软
从线性可分 SVM 到线性 SVM 从现实情况引出线性 SVM 线性可分 SVM,这种 SVM 学习的训练数据本身就是线性可分的--可以很清晰地在特征向量空间里分成正集和负集. 线性可分 SVM 正负 ...
- 机器学习超详细实践攻略(1):盘点scikit-learn里那些有趣又有用的彩蛋级入门数据集
在机器学习算法的学习过程中,找到用来适合用来练手的数据集是我们面临的第一道门槛,毕竟俗话说得好,巧妇也难为无米之炊嘛. 为此,我在知乎上写过一篇回答: 机器学习需要的大量数据集从哪里找? 这篇回答主要 ...
- 机器学习入门学习笔记:(4.2)SVM的核函数和软间隔
前言 之前讲了有关基本的SVM的数学模型(机器学习入门学习笔记:(4.1)SVM算法).这次主要介绍介绍svm的核函数.软间隔等概念,并进行详细的数学推导.这里仅将自己的笔记记录下来,以便以后复习查看 ...
- ML之SVM:SVM算法的简介、应用、经典案例之详细攻略
ML之SVM:SVM算法的简介.应用.经典案例之详细攻略 目录 SVM算法的简介 1.SVM模型分类-线性可分.线性.非线性 2.SVM的决策边界 3.SVM中的核函数 4.SVM算法推导 1.1.S ...
最新文章
- EditText禁止输入回车
- Connect模块解析 转载
- Win7 64位系统 注册 ocx控件
- 网站收录慢的如“蜗牛”,是什么原因导致的?
- 阿里资深系统架构师九峰谈云计算
- java swing 左上角图标_科学网—Matlab: 学习GUI(修改窗口左上角图标而不warning) - 刘磊的博文...
- 计组之存储系统:8、Cache写策略(全写法、写回法、写分配法、非写分配法、多级Cache)
- 富文本功能实现vue3.0
- 麦克风音频服务器未响应,win7电脑插入麦克风后realtek高清晰音频管理器没有反应怎么办...
- 偏最小二乘法PLS(matlab自带代码)
- php编网页版计算器,php编程实现简单的网页版计算器功能
- 无法登陆skype显示无法找到服务器,无法登录 Lync,因为找不到此登录地址 - Skype for Business | Microsoft Docs...
- halcon之屌炸天的变形匹配(1)
- 个人管理 - 时间管理GTD流程图
- pytorch(7)——二十二种transforms数据预处理方法
- java面试之Jsp(面试必看)
- 防止ACCESS数据库被下载的一个通用解决方法:
- Java中环境变量的设置
- 陈春花发布声明,这场流量狂欢该到了收尾的时候
- 英语专业找计算机工作好找吗,我是商务英语专业,工作好找吗?
热门文章
- 使cmd窗口不自动关闭
- jQuery..1..基本使用..选择
- 腾讯微信惊天漏洞,利用手机号致帐号丢失无法找回!——论个人信息安全与防护...
- 位运算简介及实用技巧(二):进阶篇(1)
- 【leetcode】1018. 可被 5 整除的二进制前缀
- 服务器建立/删除信任公钥方法
- undefined symbol: PyFPE_jbuf
- Zookeeper启动失败,报错 can not open chanel to 2
- Python pycurl使用
- jsp 基本语法学习笔记