支持向量机SVM(四)
9 规则化和不可分情况处理(Regularization and the non-separable case)
我们之前讨论的情况都是建立在样例线性可分的假设上,当样例线性不可分时,我们可以尝试使用核函数来将特征映射到高维,这样很可能就可分了。然而,映射后我们也不能100%保证可分。那怎么办呢,我们需要将模型进行调整,以保证在不可分的情况下,也能够尽可能地找出分隔超平面。
看下面两张图:
可以看到一个离群点(可能是噪声)可以造成超平面的移动,间隔缩小,可见以前的模型对噪声非常敏感。再有甚者,如果离群点在另外一个类中,那么这时候就是线性不可分了。
这时候我们应该允许一些点游离并在在模型中违背限制条件(函数间隔大于1)。我们设计得到新的模型如下(也称软间隔):
引入非负参数后(称为松弛变量),就允许某些样本点的函数间隔小于1,即在最大间隔区间里面,或者函数间隔是负数,即样本点在对方的区域中。而放松限制条件后,我们需要重新调整目标函数,以对离群点进行处罚,目标函数后面加上的就表示离群点越多,目标函数值越大,而我们要求的是尽可能小的目标函数值。这里的C是离群点的权重,C越大表明离群点对目标函数影响越大,也就是越不希望看到离群点。我们看到,目标函数控制了离群点的数目和程度,使大部分样本点仍然遵守限制条件。
模型修改后,拉格朗日公式也要修改如下:
这里的和都是拉格朗日乘子,回想我们在拉格朗日对偶中提到的求法,先写出拉格朗日公式(如上),然后将其看作是变量w和b的函数,分别对其求偏导,得到w和b的表达式。然后代入公式中,求带入后公式的极大值。整个推导过程类似以前的模型,这里只写出最后结果如下:
此时,我们发现没有了参数,与之前模型唯一不同在于又多了的限制条件。需要提醒的是,b的求值公式也发生了改变,改变结果在SMO算法里面介绍。先看看KKT条件的变化:
第一个式子表明在两条间隔线外的样本点前面的系数为0,离群样本点前面的系数为C,而支持向量(也就是在超平面两边的最大间隔线上)的样本点前面系数在(0,C)上。通过KKT条件可知,某些在最大间隔线上的样本点也不是支持向量,相反也可能是离群点。
10 坐标上升法(Coordinate ascent)
在最后讨论的求解之前,我们先看看坐标上升法的基本原理。假设要求解下面的优化问题:
这里W是向量的函数。之前我们在回归中提到过两种求最优解的方法,一种是梯度下降法,另外一种是牛顿法。现在我们再讲一种方法称为坐标上升法(求解最小值问题时,称作坐标下降法,原理一样)。
方法过程:
最里面语句的意思是固定除之外的所有,这时W可看作只是关于的函数,那么直接对求导优化即可。这里我们进行最大化求导的顺序i是从1到m,可以通过更改优化顺序来使W能够更快地增加并收敛。如果W在内循环中能够很快地达到最优,那么坐标上升法会是一个很高效的求极值方法。
下面通过一张图来展示:
椭圆代表了二次函数的各个等高线,变量数为2,起始坐标是(2,-2)。图中的直线式迭代优化的路径,可以看到每一步都会向最优值前进一步,而且前进路线是平行于坐标轴的,因为每一步只优化一个变量。
出处:http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988415.html
支持向量机SVM(四)相关推荐
- Python,OpenCV基于支持向量机SVM的手写数字OCR
Python,OpenCV基于支持向量机SVM的手写数字OCR 1. 效果图 2. SVM及原理 2. 源码 2.1 SVM的手写数字OCR 2.2 非线性SVM 参考 上一节介绍了基于KNN的手写数 ...
- 统计学习方法|支持向量机(SVM)原理剖析及实现
欢迎直接到我的博客查看最近文章:www.pkudodo.com.更新会比较快,评论回复我也能比较快看见,排版也会更好一点. 原始blog链接: http://www.pkudodo.com/2018/ ...
- 机器学习之支持向量机SVM之python实现ROC曲线绘制(二分类和多分类)
目录 一.ROC曲线 二.TP.FP.TN.FN 三. python绘制ROC曲线(二分类) 1.思路 2.关键代码 3.完整代码 四. python绘制ROC曲线(多分类) 五.参考文献 一.ROC ...
- 机器学习——支持向量机SVM之线性模型
目录 一.没有免费的午餐定理 二.支持向量机SVM(support vector machine) 1.线性模型和非线性模型 2.如何在线性模型中画出一条直线(优化过程--vplink) 1)多少条? ...
- python支持向量机回归_Python中支持向量机SVM的使用方法详解
除了在Matlab中使用PRTools工具箱中的svm算法,Python中一样可以使用支持向量机做分类.因为Python中的sklearn库也集成了SVM算法,本文的运行环境是Pycharm. 一.导 ...
- 机器学习中的算法-支持向量机(SVM)基础
机器学习中的算法-支持向量机(SVM)基础 版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处 ...
- 支持向量机SVM算法原理及应用(R)
支持向量机SVM算法原理及应用(R) 2016年08月17日 16:37:25 阅读数:22292更多 个人分类: 数据挖掘实战应用 版权声明:本文为博主原创文章,转载请注明来源. https://b ...
- 支持向量机原理(四)SMO算法原理
支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五) ...
- MATLAB实现支持向量机SVM分类简介
1. 支持向量机SVM 支持向量机(SVM, support vector machine)是名噪一时的机器学习方法,自20世纪末以来在模式识别领域风生水起,至今仍然活跃在各大论文期刊中.无论是和其他 ...
- sklearn中的支持向量机SVM(下)
1 二分类SVC的进阶 1.1 SVC用于二分类的原理复习 sklearn中的支持向量机SVM(上) 1.2 参数C的理解进阶 有一些数据,可能是线性可分的,但在线性可分状况下训练准确率不能达到100 ...
最新文章
- 【Linux】9.ssh登录与scp文件拷贝
- 【Java13】cookiesession(登陆案例(2)),jsp(登录案例(3))
- jQUery中closest和parents的主要区别是
- python之数据库连接
- c# out原理 ref_移植贪吃蛇——从C#到C++
- eclipse报错 : One or more constraints have not been satisfied.
- Jquery中的CheckBox、RadioButton、DropDownList的取值赋值实现代码
- 按性别分类进行描述统计(SPSS操作)
- win7系统修复工具_win7系统如何修复
- Halide学习笔记----Halide tutorial源码阅读3
- 计算机三级网络技术知识点大全(一)
- 基于DOA联合TDOA时间积累下二维平面GDOP
- 第二届中国Rust开发者大会(RustChinaConf 2021~2022)线上大会正式开启报名
- Spring学习总结(一)- Spring的核心特性之依赖注入(DI)总结
- 抖音账号矩阵系统源码/矩阵霸屏系统搭建部署/源码
- P1522 牛的旅行 Cow Tours(floyd)
- 小结字符集及字符编码问题
- linux下DNS配置及域名解析服务
- 拉取小米MIUI系统的framework.jar实践之旅
- ppt打不开,显示发现文件中的内容有问题。可尝试修复此演示文稿
热门文章
- 无法安装计算机的启动配置,“windows 无法更新计算机的启动配置。安装无法继续”这样解决...
- linux驱动读取文件失败怎么办,linux – 由于单个驱动器读取错误导致软件RAID-1导致内核故障...
- Spring Cloud Alibaba - 19 Nacos Config配置中心加载不同微服务的通用配置的两种方式
- Spring-方法注入lookup、方法替换MethodReplacer接口
- oracle 11g autotrace,ORACLE 使用AUTOTRACE功能
- node.js 没有转发_如何用Nodejs编写一个定时消息提醒应用?
- 交易系统单服务器tps,交易者必看!一文了解TPS量化交易系统
- python装饰器_python装饰器完全指南之一
- vue设置一个简单的计算器
- pip和conda批量导出、安装第三方依赖库(requirements.txt)