统计学习方法:支撑向量机(SVM)
作者:桂。
时间:2017-05-13 21:52:14
链接:http://www.cnblogs.com/xingshansi/p/6850684.html
前言
主要记录SVM的相关知识,参考的是李航的《统计学习方法》,最后的SMO优化算法(Sequential minimal optimization)是二次规划的优化算法,不涉及整体思路的理解,这里打算跳过,以后用到了再来回顾。
一、线性可分支撑向量机
A-问题分析
不同于感知器Perceptron,SVM希望所有点到分离面的最小距离最大化,而距离分离面最近的样本点就是支撑向量(support vector):
样本点到分离面的距离:
定义最小间隔:
最小间隔最大化就是如下的优化问题:
令=
,则优化问题改写为:
事实上的取值不影响最终的最优解,进一步转化优化问题:
这就成了一个凸二次规划(convex quadratic programming)问题了,满足凸优化的形式,可以借助对偶简化求解。
引进拉格朗日乘子:
原始问题为极小极大问题,转化问对偶就是极大极小问题:
先极小求解,上述优化问题可以简化为:
根据KKT条件,上述解对应原问题的解:
从而完成求解。
B-算法步骤
C-应用举例
只不过这里不是求解感知器,而是SVM。
第一步:对偶问题求解
求出的最优解(a1,a2)是
,但a2 = -1不满足约束a2>=0,所以最小值在边界取得。
第二步:计算w与b
=1/4*[3, 3]*1+1/4*[1, 1]*(-1)=[1/2, 1/2]
=-2
第三步:得出分离决策面
二、线性不可分情况
A-问题分析
其实它是对线性可分的推广,对线性可分的情况仍然适用。对于线性不可分的解决办法就是引入松弛变量,也就是加入了误差扰动:
引入松弛变量优化时考虑两方面:1)最小距离尽可能大; 2)误分类点个数尽量小。得出新的准则函数:
仍然借助对偶问题求解(剩下的思路与线性可分问题的求解思路完全一致):
进一步得到原始问题的解:
从而完成求解。
B-准则函数补充
因为超平面都是可以伸缩的,假设全部正确分类:
最小间隔:
这是硬间隔,但实际中可能不能完全线性分开:
这个时候就是软间隔,即允许部分数据不满足:
当然最大化间隔时,希望不满足条件的样本点数尽可能小,给出准则函数:
其中是0/1损失函数,用来定义不满足条件的样本数:
但是非凸、非连续,可以近似替代处理:
常用替代方式有三类:
如果采用hinge损失,损失函数转化为:
将定义为松弛变量
,上式等价为:
这个就是线性不可分时的准则函数了。最后回头看看近似与之间的关系:
C-算法步骤
给出线性支撑向量机学习算法:
三、非线性情况
关于核函数的应用,之前的文章已经分析过。
什么样的函数可以作为核函数?充要条件——K(x,z)为正定核函数:
考虑矩阵的特征值。
若所有特征值均不小于零,则称为半正定。
若所有特征值均大于零,则称为正定。
参考:
- 李航《统计学习方法》
统计学习方法:支撑向量机(SVM)的更多相关文章
- 8.支撑向量机SVM
1.什么是SVM 下面我们就来介绍一些SVM(Support Vector Machine),首先什么是SVM,它是做什么的?SVM,中文名是支撑向量机,既可以解决分类问题,也可以解决回归问题,我们来 ...
- 走过路过不要错过 包你一文看懂支撑向量机SVM
假设我们要判断一个人是否得癌症,比如下图:红色得癌症,蓝色不得. 看一下上图,要把红色的点和蓝色的点分开,可以画出无数条直线.上图里黄色的分割更好还是绿色的分割更好呢?直觉上一看,就是绿色的线更好.对 ...
- 第11章 支撑向量机SVM
Support Vector Machine , 问题:如果决策边界不唯一 , , , , , , , , s.t.(such that):之前都是全局最优化问题,这次是有条件的最优化问题 har ...
- SVM学习笔记-线性支撑向量机
对于PLA算法来说,最终得到哪一条线是不一定的,取决于算法scan数据的过程. 从VC bound的角度来说,上述三条线的复杂度是一样的 Eout(w)≤Ein0+Ω(H)dvc= ...
- 支撑向量机(SVM)
转载自http://blog.csdn.net/passball/article/details/7661887,写的很好,虽然那人也是转了别人的做了整理(最原始文章来自http://www.blog ...
- SVM支撑向量机原理
转自:http://blog.csdn.net/v_july_v/article/details/7624837 目录(?)[-] 支持向量机通俗导论理解SVM的三层境界 前言 第一层了解SVM 1分 ...
- 支撑矢量机SVM
1.线性SVM 首先,回顾一下SVM问题的定义,如下: 线性约束很烦,不方便优化,是否有一种方法可以将线性约束放到优化问题本身,这样就可以无拘无束的优化,而不用考虑线性约束了.其对应的拉格朗日对偶形式 ...
- 模式识别笔记3-支持向量机SVM
1. 线性SVM 对两类点的划分问题,这里对比下逻辑回归和SVM的区别: 逻辑回归的思想是,将所有点到决策平面的距离作为损失来进行训练,目标是到决策平面的距离和最小 SVM的思想是,只关注支持向量(图 ...
- 机器学习实战笔记(Python实现)-05-支持向量机(SVM)
--------------------------------------------------------------------------------------- 本系列文章为<机器 ...
随机推荐
- Typescript declaration: Merge a class and an interface
参考: https://stackoverflow.com/questions/47670959/typescript-declaration-merge-a-class-and-an-interfa ...
- 【转】NativeScript的工作原理:用JavaScript调用原生API实现跨平台
原文:https://blog.csdn.net/qq_21298703/article/details/44982547 -------------------------------------- ...
- RS开发值提示默认为当前月
在报表的开发过程中,按月查询数据,但是由于数据仓库中涉及多年历史数据,而用户最关心的却是最近的数据,针对这个情况.当用户第一次点击报表想看到的就是当前月的数据,那么如何去做呢? 下面用一个小例子来实战 ...
- MySQL的IFNULL函数
MySQL函数里有一个很有用的函数IFNULL,它的形式是IFNULL(fieldA,fieldB),意义是当字段fieldA是NULL时取fieldB,不是NULL时取fieldA的值. 这个函数与 ...
- Java+FlashWavRecorder实现网页录音并上传
[注意] 最新版本号请看这里:http://uikoo9.com/blog/detail/java-flashwavrecorder [前言] 肯定有需求要网页录音,并且要上传.这奇葩需求. 然后找到 ...
- exception 值太大
CreateTime--2018年2月5日09:45:01 Author:Marydon 异常: Cause: java.sql.SQLException: ORA-12899: 列 " ...
- linux上传下载文件rz,sz
[一般用于SecureCRT ssh中使用] █ 法一:直接用yum安装lrzsz(推荐) yum install lrzsz -y 注意:rhel安装完系统后 直接可使用 rz sz █ 法二:源文 ...
- phpCAS library
The phpCAS library provides a simple API for authenticating users against a CAS server. phpCAS is co ...
- 不止是动态化:Weex项目和阿里无线技术开源方向
这是开发者正在书写的峥嵘岁月.受益开源,回馈社区.阿里巴巴集团已经开源115个项目,并正式加入FSF基金会,Apache基金会,linux 基金会和Xen的顾问团队,并在云栖大会北京峰会宣布AliSQ ...
- 转载【TP3.2】:使用PHP生成二维码
转载:在网上down了一个二维码插件PHPQRcode,整合到了ThinkPHP 3.2.3,然后写了个外部自定义函数直接调用生成二维码,根据参数不同有不同尺寸效果,整合其实挺简单,分享给大家! 今天 ...