SVM中如何防止过拟合
在前面的博客中,我们已经详细讲述过了,什么是过拟合问题。
过拟合(overfitting)表现为模型在训练集上预测效果好,在测试集上预测效果差。
数据中的异常点会导致过拟合,这些异常点,严重偏离正常位置。
在SVM中,最优分类超平面恰恰是那些占少数的支持向量,如果支持向量中碰巧存在异常点,那么我们傻傻地让SVM去拟合这样的数据,最后的超平面就不是最优的了。
具体例子:(参考:https://www.jianshu.com/p/9b03cac58966)
如下图所示,深红色线表示我们希望训练得到的最优分类超平面,黑色虚线表示由于过拟合得到的较差的分类面。这是由于蓝色数据中有一个异常点,即图中的那个黑圈蓝点,使得我们的SVM去将就配合它,导致最后得到的分类面(粗黑色虚线)不尽如人意。从间隔可以看出,黑色虚线两边的间隔要比红色线两边的间隔要狭窄,也就是黑色虚线的分类效果比较差。
解决过拟合的办法是为SVM引入了松弛变量ξ(slack variable),将SVM公式的约束条件改为:
从下可以看到,引入松弛变量使SVM能够容忍异常点的存在。
为什么?
因为引入松弛变量后,所有点到超平面的距离约束不需要大于等于1了,而是大于0.8就行了(如果ξ=0.2的话),那么异常点就可以不是支持向量了,它就作为一个普通的点存在,我们的支持向量和超平面都不会受到它的影响。
我们知道,事物都有两面性,对异常点太容忍会导致任意超平面都可以是“最优”超平面,SVM就失去意义了。因此SVM公式中的目标函数也需要相应修改,我们加上松弛变量的平方和,并求最小值。这样就达到一个平衡:既希望松弛变量存在以解决异常点问题,又不希望松弛变量太大导致分类解决太差。
总结:svm中解决过拟合问题.
(1)数据扩增(前面说过)
(2)减少特征维度,维度太高,进行降维
(3)引入松弛变量,SVM特有的(类似于正则化?还在研究中。。。)
注:SVM中还有很多知识需要学习,一点一点啃。
以上内容,如有错误,望留言指正。
引用和参考:
https://www.jianshu.com/p/9b03cac58966
http://www.blogjava.net/zhenandaci/archive/2009/03/15/259786.html
https://www.zhihu.com/question/20178589
https://www.zhihu.com/question/30230784
仅用来个人学习和分享,如若侵权,留言立删。
尊重他人知识产权,不做拿来主义者!
喜欢的可以关注我哦QAQ,
你的关注就是我write博文的动力。
SVM中如何防止过拟合相关推荐
- 利用进化算法+多进程/多线程来优化SVM中的两个参数:C和Gamma
该案例展示了如何利用进化算法+多进程/多线程来优化SVM中的两个参数:C和Gamma. 在执行本案例前,需要确保正确安装sklearn,以保证SVM部分的代码能够正常执行. 本函数需要用到一个外部数据 ...
- 机器学习——图解SVM中gamma和c参数的作用
参数c和gamma的作用 我们通过下图详解参数c的作用,首先我们以一个简单的线性分类器为例,上一个博客中我们知道影响分类器的主要因素是支持向量,即虚线上的样本,如下图可知: 但当正负样本的分布在如下情 ...
- sklearn.svm中LinearSVR(svm线性回归)、LinearSVC(svm线性分类)与SVC(svm分类)、SVR(svm回归)之间的区别
区别: LinearSVC: SVM线性分类器:用来实现线性的分类任务 """鸢尾花数据集,执行一个分类问题"""import numpy ...
- SVM 中的数学和算法
前言 本文转自 sealyao 的博客,原文链接「CSDN - SVM中的数学和算法」,是我在学习 SVM 的过程中找到的一篇讲解比较透彻的文章,这里转载过来分享给大家,并优化一下原文的排版. SVM ...
- R语言广义线性模型函数GLM、R中有几种泊松回归扩展和变异、变时段泊松回归、零膨胀泊松回归、鲁棒泊松回归、pscl包的zeroinfl拟合零膨胀泊松回归、robust包中的glmRob函数拟合鲁棒模型
R语言广义线性模型函数GLM.glm函数构建泊松回归模型.R中有几种泊松回归扩展和变异.变时段泊松回归.零膨胀泊松回归.鲁棒泊松回归.pscl包的zeroinfl拟合零膨胀泊松回归.robust包中的 ...
- R语言广义线性模型函数GLM、R中有几种logistic回归扩展和变异、robust包中的glmRob函数鲁棒logistic回归、ms包中的lrm函数拟合序数逻辑回归
R语言广义线性模型函数GLM.glm函数构建逻辑回归模型(Logistic regression).R中有几种logistic回归扩展和变异.robust包中的glmRob函数鲁棒logistic回归 ...
- 机器学习中常见的过拟合解决方法
机器学习中常见的过拟合解决方法 参考文章: (1)机器学习中常见的过拟合解决方法 (2)https://www.cnblogs.com/jiangxinyang/p/9281107.html 备忘一下 ...
- SVM中的线性分类器
线性分类器: 首先给出一个非常非常简单的分类问题(线性可分),我们要用一条直线,将下图中黑色的点和白色的点分开,很显然,图上的这条直线就是我们要求的直线之一(可以有无数条这样的直线) 假如说, ...
- SVM中为何间隔边界的值为正负1
在WB二面中,问到让讲一下SVM算法. 我回答的时候,直接答道线性分隔面将样本分为正负两类,取平行于线性分割面的两个面作为间隔边界,分别为:wx+b=1和wx+ b = -1. 面试官就问,为什么是正 ...
最新文章
- 分享13个帮助你简化开发的jQuery插件
- MySQL安装步骤及相关问题解决
- Mocha BSM基础架构管理——网络设备
- Java设计模式之双向责任链COR模式
- JSF优点(转载自中国IT实验室)
- Boost:计时系的测试
- ccs读取dat文件c语言程序,TMS320DM642学习----第六篇(CCS中.dat文件类型详解)
- 枚举ENUM的tostring() valueof()name()和values()用法
- python—auto-py-to-exe—.py文件打包成.exe文件最全最详细(用不同的类别做教程)
- Atitit webshell java 实现 命令行输出读取问题总结 1.1. 读取组赛 或者读取了一部分。。使用cmd /c 模式,强制关闭刷新缓冲区	1 1.2. 乱码解决	1 1.3. /h
- 正则表达式视频教程免费下载
- fastboot命令大全
- 利用BS爬取单词音标
- EPON联通网关超级管理员密码获取办法
- aspCms 标签大全
- [Paper Reading]开始写Paper Reading Report
- 2022年熔化焊接与热切割考试题模拟考试题库及模拟考试
- 系统安装部署系列教程(一):安装原版系统镜像
- OverTheWire-Bandit
- exit status 145: Ŀ¼���ǿյġ� exit s