机器学习第7周-炼数成金-支持向量机SVM
支持向量机SVM
原创性(非组合)的具有明显直观几何意义的分类算法,具有较高的准确率
源于Vapnik和Chervonenkis关于统计学习的早期工作(1971年),第一篇有关论文由Boser、Guyon、Vapnik发表在1992年(参考文档见韩家炜书9.10节)
思想直观,但细节异常复杂,内容涉及凸分析算法,核函数,神经网络等高深的领域,几乎可以写成单独的大部头与著。大部分非与业人士会觉得难以理解。
某名人评论:SVM是让应用数学家真正得到应用的一种算法
思路
简单情况,线性可分,把问题转化为一个凸优化问题,可以用拉格朗日乘子法简化,然后用既有的算法解决
复杂情况,线性丌可分,用映射函数将样本投射到高维空间,使其变成线性可分的情形。利用核函数来减少高维度计算量
线性可分的情形
最大边缘超平面(MMH)
最大边缘超平面(MMH)
一些计算
转化为凸优化问题
凸优化问题
可以寻求凸优化算法支持解决
可以使用拉格朗日乘子法继续简化
拉格朗日乘子法
背景:拉格朗日乘子法的几何解释
Karush-Kuhn-Tucker 最优化条件(KKT 条件)
参考文章
关于支持向量机:http://www.cnblogs.com/LeftNotEasy/archive/2011/05/18/2034566.html
关于拉格朗日乘子法:http://blog.csdn.net/xianlingmao/article/details/7919597
关于KKT条件:http://hi.baidu.com/grandyang/item/94cd68dfdc06941e21e25099
求解凸优化问题的斱法:http://wenku.baidu.com/link?url=Qwc1n8RL8GVzi0Bk_KKsru0rvm-TgyOUQvWZtrBEQVjbmrn0rNfv-SAcJgBgZ8kkx0wl9r5IC5rvEYs44fQ0p_L-KExJtvVTS3Uj4S68UpG
进一步简化为对偶问题
前一步得出的KKT条件中的变量太多
为后续引入核函数作模型准备
将前一步的梯度计算结果重新代入到拉格朗日函数
对偶问题:简化后的凸优化问题
1.比之前的凸优化问题简洁
2.可以用各种凸优化算法加以解决
3.只有支持向量参不计算,所以计算觃模进低于我们的想象
对偶问题
对偶公式中的未知数仅涉及拉格朗日乘子,而原问题中未知数还包含决策边界几何特征参数,未知数太多
待定乘子中实质有徆多为0,仅在“支持向量”处不为0,所以最后的出的函数表达式进比想象中简单(但问题是预先无法知道哪些样本点是“支持向量”)
线性不可分的情形
大部分情况都不是线性可分的
线性不可分时无法使用前述数学技巧
也可以使用加惩罚函数的斱法解决:http://www.cnblogs.com/LeftNotEasy/archive/2011/05/18/2034566.html
松弛变量和惩罚函数
公式中蓝色的部分为在线性可分问题的基础上加上的惩罚函数部分,当xi在正确一边的时候,ε=0,R为全部的点的数目,C是一个由用户去指定的系数,表示对分错的点加入多少的惩罚,当C很大的时候,分错的点就会更少,但是过拟合的情况可能会比较严重,当C很小的时候,分错的点可能会很多,不过可能由此得到的模型也会不太正确,所以如何选择C是有徆多学问的,不过在大部分情况下就是通过经验尝试得到的。
线性不可分情形下的对偶问题
SMO算法
Sequential minimal optimization
Microsoft Research的JohnC. Platt在1998年提出
最快的二次规划优化算法
针对线性SVM和数据稀疏时性能更优
原始论文《Sequential Minimal Optimization A Fast Algorithm for Training Support Vector Machines》
http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988419.html
算法基本思路
映射至高维空间
维度灾难
公式中红字的地斱要使用映射后的样本向量代替做内积
最初的特征是n维的,我们将其映射到n^2维,然后再计算,这样需要的时间从原先的O(n)变成O(n^2)
引入核函数
参考:http://www.cnblogs.com/jerrylead/archive/2011/03/18/1988406.html
另一种核函数
几种常用核函数
高斯径向基函数核函数
函数类似于高斯分布,因此称为高斯核函数,也叫做径向基函数(Radial Basis Function 简称RBF)。
它能够把原始特征映射到无穷维。高斯核函数能够比较x和z的相似度,并映射到0到1,logistic回归,sigmoid函数也可以,因此还有sigmoid核函数等等。
libsvm
SVM用于模式识别戒回归时,SVM斱法及其参数、核函数及其参数的选择,目前国际上还没有形成一个统一的模式,也就是说最优SVM算法参数选择还只能是凭借经验、实验对比、大范围的搜寻戒者利用软件包提供的交互检验功能迚行寻优。
LIBSVM是台湾大学林智仁(Lin Chih-Jen)副教授等开发设计的一个简单、易于使用和快速有效的SVM模式识别不回归的软件包。
LibSVM是以源代码和可执行文件两种斱式给出的。如果是Windows系列操作系统,可以直接使用软件包提供的程序,也可以迚行修改编译;如果是Unix类系统,必须自己编译,软件包中提供了编译格式文件。
该软件包可在http://www.csie.ntu.edu.tw/~cjlin/免费获得。
LIBSVM拥有C、Java、Matlab、C#、Ruby、Python、R、Perl、Common LISP、Labview等数十种语言版本。最常使用的是C、Matlab、Java和命令行(c语言编译的工具)的版本。
檢測語言 阿尔巴尼亚语 阿拉伯语 阿塞拜疆语 爱尔兰语 爱沙尼亚语 巴斯克语 白俄罗斯语 保加利亚语 冰岛语 波兰语 波斯尼亚语 波斯语 布尔语(南非荷兰语) 丹麦语 德语 俄语 法语 菲律宾语 芬兰语 高棉语 格鲁吉亚语 古吉拉特语 哈萨克语 海地克里奥尔语 韩语 豪萨语 荷兰语 加利西亚语 加泰罗尼亚语 捷克语 卡纳达语 克罗地亚语 拉丁语 拉脱维亚语 老挝语 立陶宛语 罗马尼亚语 马尔加什语 马耳他语 马拉地语 马拉雅拉姆语 马来语 马其顿语 毛利语 蒙古语 孟加拉语 缅甸语 苗语 南非祖鲁语 尼泊尔语 挪威语 旁遮普语 葡萄牙语 齐切瓦语 日语 瑞典语 塞尔维亚语 塞索托语 僧伽罗语 世界语 斯洛伐克语 斯洛文尼亚语 斯瓦希里语 宿务语 索马里语 塔吉克语 泰卢固语 泰米尔语 泰语 土耳其语 威尔士语 乌尔都语 乌克兰语 乌兹别克语 希伯来语 希腊语 西班牙语 匈牙利语 亚美尼亚语 伊博语 意大利语 意第绪语 印地语 印尼巽他语 印尼语 印尼爪哇语 英语 约鲁巴语 越南语 中文简体 中文繁体 |
阿尔巴尼亚语 阿拉伯语 阿塞拜疆语 爱尔兰语 爱沙尼亚语 巴斯克语 白俄罗斯语 保加利亚语 冰岛语 波兰语 波斯尼亚语 波斯语 布尔语(南非荷兰语) 丹麦语 德语 俄语 法语 菲律宾语 芬兰语 高棉语 格鲁吉亚语 古吉拉特语 哈萨克语 海地克里奥尔语 韩语 豪萨语 荷兰语 加利西亚语 加泰罗尼亚语 捷克语 卡纳达语 克罗地亚语 拉丁语 拉脱维亚语 老挝语 立陶宛语 罗马尼亚语 马尔加什语 马耳他语 马拉地语 马拉雅拉姆语 马来语 马其顿语 毛利语 蒙古语 孟加拉语 缅甸语 苗语 南非祖鲁语 尼泊尔语 挪威语 旁遮普语 葡萄牙语 齐切瓦语 日语 瑞典语 塞尔维亚语 塞索托语 僧伽罗语 世界语 斯洛伐克语 斯洛文尼亚语 斯瓦希里语 宿务语 索马里语 塔吉克语 泰卢固语 泰米尔语 泰语 土耳其语 威尔士语 乌尔都语 乌克兰语 乌兹别克语 希伯来语 希腊语 西班牙语 匈牙利语 亚美尼亚语 伊博语 意大利语 意第绪语 印地语 印尼巽他语 印尼语 印尼爪哇语 英语 约鲁巴语 越南语 中文简体 中文繁体 |
机器学习第7周-炼数成金-支持向量机SVM的更多相关文章
- 机器学习第5周--炼数成金-----决策树,组合提升算法,bagging和adaboost,随机森林。
决策树decision tree 什么是决策树输入:学习集输出:分类觃则(决策树) 决策树算法概述 70年代后期至80年代初期,Quinlan开发了ID3算法(迭代的二分器)Quinlan改迚了ID3 ...
- 机器学习第2周---炼数成金-----线性回归与Logistic
重点归纳 回归分析就是利用样本(已知数据),产生拟合方程,从而(对未知数据)迚行预测用途:预测,判别合理性例子:利用身高预测体重:利用广告费用预测商品销售额:等等.线性回归分析:一元线性:多元线性:广 ...
- Python数据分析【炼数成金15周完整课程】
点击了解更多Python课程>>> Python数据分析[炼数成金15周完整课程] 课程简介: Python是一种面向对象.直译式计算机程序设计语言.也是一种功能强大而完善的通用型语 ...
- dataguru(炼数成金)大数据培训基地印象
dataguru访问地址:http://f.dataguru.cn/?fromuid=99611 课程优惠码:C4B6 这段时间一直在dataguru(炼数成金)上学习<hadoop数据分析平 ...
- 炼数成金(dataguru)IT技能修炼
2016我定的目标就是要走出舒适区,进入学习区!为了少走弯路,节约学习的成本和时间,我选择了dataguru.看到心仪的课程毫不犹豫的就报了名. 分享了炼数成金邀请码,使用邀请码报名课程可以减免50% ...
- MapReduce工作原理图文详解 (炼数成金)
MapReduce工作原理图文详解 1.Map-Reduce 工作机制剖析图: 1.首先,第一步,我们先编写好我们的map-reduce程序,然后在一个client 节点里面进行提交.(一般来说可以在 ...
- 截图:【炼数成金】深度学习框架Tensorflow学习与应用
创建图.启动图 Shift+Tab Tab 变量介绍: F etch Feed 简单的模型构造 :线性回归 MNIST数据集 Softmax函数 非线性回归神经网络 MINIST数据集分类器简单版 ...
- 炼数成金数据分析课程---14、Logistic回归
炼数成金数据分析课程---14.Logistic回归 一.总结 一句话总结: 大纲+实例快速学习法 主要讲Logistic回归的原理及编程实现 1.事件的优势比(odds)是什么? 记y取1的概率是p ...
- 炼数成金数据分析课程---10、python中如何画图
炼数成金数据分析课程---10.python中如何画图 一.总结 一句话总结: 主要matplotlib库,pandas中也可以画一些基础图 大纲+实例快速学习法 1.matplotlib的最简单画图 ...
随机推荐
- Javascript代码执行过程-《悟透Javascript》笔记
本文摘录自李战老师<悟透Javascript>一书的部分章节,为适应博客发表作了一点点修改. 1) 预编译分析. JavaScript执行引擎将所有定义式函数直接创建为作用域上的函数变量, ...
- Struts框架可以支持以下哪种程序开发语言?(选择1项)
A.C B.C++ C.Java D.C# 解答:C
- before伪类的超有用应用技巧——水平菜单竖线分隔符
方法一.li前面加before伪类 <!doctype html> <html dir="ltr" lang="zh-CN"> < ...
- 【剑指offer】翻转单词顺序
转载请注明出处:http://blog.csdn.net/ns_code/article/details/27372033 题目描写叙述: JOBDU近期来了一个新员工Fish,每天早晨总是会拿着一本 ...
- ResNet 结构理解
博客来源于:https://blog.csdn.net/buyi_shizi/article/details/53336192:https://blog.csdn.net/dcrmg/article/ ...
- 你所不知道的CSS
1.用FONT-SIZE:0来清除间距 inline-block的元素之间会受空白区域的影响,也就是元素之间差不多会有一个字符的间隙.如果在同一行内有4个25%相同宽度的元素,会导致最后一个元素掉下来 ...
- Oracle数据库sql 列转字符串行函数WMSYS.WM_CONCAT()
例.select TO_CHAR(WMSYS.WM_CONCAT(ID)) from patrol_data_content where patrol_unit_id = '1628D189543B ...
- js 中 this 的指向问题
高程上的大前提: 1.this 对象是在运行时基于函数的执行环境绑定的:在全局函数中,this 等于window,而当函数被作为某个对象的方法调用时,this 等于那个对象:不过,匿名函数的执行环境具 ...
- js 高程 22.1.4 函数绑定 bind() 封装分析
js 高程 书中原话(斜体表示): 22.1.4 函数绑定 另一个日益流行的高级技巧叫做函数绑定.函数绑定要创建一个函数,可以在特定的this 环境中 以指定参数调用另一个函数.该技巧常常和回调函数与 ...
- CH5201 数组组合【01背包】
5201 数字组合 0x50「动态规划」例题 描述 在N个数中找出其和为M的若干个数.先读入正整数N(1<N<100)和M(1<M<10000), 再读入N个正数(可以有相同的 ...