支持向量机缩写是SVM(support vaector machine),这里的“机(machine)”是一个算法。在机器学习领域,常把一些算法看做是一个机器,如感知机(也叫感知器)。支持向量机本身是一种监督学习算法,它广泛的应用于统计分类以及回归分析中。

构建支持向量机

  支持向量机的假设函数与逻辑归回一样,这里需要回顾一下逻辑回归的模型:

  当实际值是1时,如果我们想让预测结果尽可能准确,则需要预测值是1的概率很大,即hθ(x) ≈ 1,此时,θTx >> 0;相应的,当实际值是0时,如果希望预测值尽可能准确,则hθ(x) ≈ 0,θTx << 0。对于逻辑回归的损失函数:

  当y=1时,z = θTx越大,预测结果hθ(x) 越接近1,cost值越小;z = θTx越小,预测结果hθ(x) 越接近0,cost值越大:

  当y=0时,z = θTx越大,预测结果hθ(x) 越接近1,cost值越大;z = θTx越小,预测结果hθ(x) 越接近0,cost值越小:

  支持向量机的cost function可以看作逻辑回归的退化,它将曲线变为直线:

  这里的cost1和cost0是对称的,都是折线函数,其斜率和截距可以自行选定。上图中的cost可能是:

  因为1/m是常量,对最终的优化不起任何作用,所以习惯上支持向量机损失函数去掉1/m:

  上式中λ是常量,相应地,1/λ同样是常量,对于最终目标(求得最佳θ使J(θ)最小化)来说,乘以一个常数对计算没有任何影响,所以上式可乘以1/λ:

  对于优化来说,①和②最终将得到同样的结果,其中λ在优化中起到的作用一样,如果过拟合,需要增大λ(减小C),欠拟合需要缩小λ(增大C)。

  我们使用一个极端的例子,假设C设置的很大,为了使J(θ)最小化, 需要让C控制的表达式接近0:

  因为C相当于1/λ,C很大等价于λ很小,这将产生过拟合:

安全距离的直观理解

  假设支持向量机代价涵数的曲线如下所示:

  对于二分类来说:

  结合最小化J(θ):

  对于能够正确分开的正样本,逻辑回归要求z = θTx ≥ 0,而SVM要求z = θTx ≥ 1,此时cost1(z) = 0;对于正确分开的负样本,逻辑回归要求z = θTx < 0,而SVM要求z = θTx ≤ -1,此时cost0(z) = 0。可见SVM要比逻辑回归严格,相当于多嵌入了一个额外的安全距离因子,也就是cost的函数斜线部分的截距:

  用一个例子说明安全距离的作用。对于一个有两个特征的线性可分的训练集,下图中的三条直线都能将样本正确分类:

  实际上支持向量机会选择更安全的黑色直线,因为它距离两侧的分类都有足够的距离,也就是说,相对与其他分隔线,如果选取黑色直线,那么分隔线和距离其最近的样本点的距离比其它直线要大:

与逻辑回归的区别

  在逻辑回归中,正例的hθ(x)≥0.5,负例的hθ(x)≤0.5,强调在全部训练实例上达到J(θ)最小化的目标,其分隔平面如下所示:

  逻辑回归强调所有点尽可能地远离分隔平面,更准确地说是所有点的损失函数之和最小,为了达到这个目的,可能会使一部分点十分接近分隔平面从而换取另一部分点更加远离平面。从图中我们可以确定A是×类别,B还算能够确定(比如hθ(x) = 0.65),C是不太确定的(比如hθ(x) = 0.55)。可以说,逻辑回归关心的是全局。

  但是实际应用中,我们更关心靠近分隔平面的模棱两可的点,而不是十分确定的点,SVM的思路正是通过拉近远离分隔平面的点,从而换得原来靠近平面的点能够远离平面。

间隔和支持向量

  在线性可分的情况下,支持向量机的分隔线仅与几个最靠近它的点有关,这些点称为支持向量,下图中H是分隔直线,H1上的1个点和H2上的2个点是支持向量,也称为支撑向量:

  下一篇的内容:支持向量机的模型函数;如何寻找最大间隔

  参考

  Ng视频 《Support Vector Machines》


  作者:我是8位的

  出处:http://www.cnblogs.com/bigmonkey

  本文以学习、研究和分享为主,如需转载,请联系本人,标明作者和出处,非商业用途!

  扫描二维码关注公众号“我是8位的”

  

ML(7)——支持向量机1(构建支持向量机)的更多相关文章

  1. [ML从入门到入门] 支持向量机:从SVM的推导过程到SMO的收敛性讨论

    前言 支持向量机(Support Vector Machine,SVM)在70年代由苏联人 Vladimir Vapnik 提出,主要用于处理二分类问题,也就是研究如何区分两类事物. 本文主要介绍支持 ...

  2. 大数据-10-Spark入门之支持向量机SVM分类器

    简介 支持向量机SVM是一种二分类模型.它的基本模型是定义在特征空间上的间隔最大的线性分类器.支持向量机学习方法包含3种模型:线性可分支持向量机.线性支持向量机及非线性支持向量机.当训练数据线性可分时 ...

  3. [吴恩达机器学习笔记]12支持向量机1从逻辑回归到SVM/SVM的损失函数

    12.支持向量机 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考资料 斯坦福大学 2014 机器学习教程中文笔记 by 黄海广 12.1 SVM损失函数 从逻辑回归到支持向量机 为了描述 ...

  4. 机器学习之支持向量机(Support Vector Machine)

    转载请注明出处:http://www.cnblogs.com/Peyton-Li/ 支持向量机 支持向量机(support vector machines,SVMs)是一种二类分类模型.它的基本模型是 ...

  5. [转] 从零推导支持向量机 (SVM)

    原文连接 - https://zhuanlan.zhihu.com/p/31652569 摘要 支持向量机 (SVM) 是一个非常经典且高效的分类模型.但是,支持向量机中涉及许多复杂的数学推导,并需要 ...

  6. 支持向量机(SVM)之数学公式详细推导

    一.概述 1.含义: 支持向量机(support vector machine,SVM)是一种二类分类器,它的基本模型是定义在特征空间上的间隔最大化的线性分类器,通过引入核函数,也可以作为非线性分类器 ...

  7. 机器学习课程-第7周-支持向量机(Support Vector Machines)

    1. 优化目标 在监督学习中,许多学习算法的性能都非常类似,因此,重要的不是你该选择使用学习算法A还是学习算法B,而更重要的是,应用这些算法时,所创建的大量数据在应用这些算法时,表现情况通常依赖于你的 ...

  8. 4.1、支持向量机(SVM)

    1.二分类问题 在以前的博客中,我们介绍了用于处理二分类问题的Logistic Regression算法和用于处理多分类问题的Softmax Regression算法,典型的二分类问题,如图: 对于上 ...

  9. Halcon学习笔记之支持向量机(二)

    例程:classify_halogen_bulbs.hdev 在Halcon中模式匹配最成熟最常用的方式该署支持向量机了,在本例程中展示了使用支持向量机对卤素灯的质量检测方法.通过这个案例,相信大家可 ...

随机推荐

  1. VCL界面控件DevExpress VCL Controls发布v18.2.5|附下载

    DevExpress VCL Controls是 Devexpress公司旗下最老牌的用户界面套包.所包含的控件有:数据录入,图表,数据分析,导航,布局,网格,日程管理,样式,打印和工作流等,让您快速 ...

  2. EffecJava Method

    坚持使用Overrider注解,可以预防我们并没有重载的情况出现. 除非使用者绝对安全,不然使用保护性拷贝,可以使程序安全. public class Period {//没有拷贝安全 private ...

  3. 『转』credential Provider 简易改写攻略

    本次小学期的题目是windows下的凭证改编.本人负责的是Win7 下的credentials Provider 的编写以及其他杂七杂八的工作.当然给我印象最深的就是credentials provi ...

  4. vue 手写组件 集合

    Num.1 :  链接 向右滑动, 显示删除按钮,  根据touchStart touchEnd 的 clientX 差距 > 30; 说明是向左滑动, 显示; 改变 e.currentTarg ...

  5. php 正则概述

    修饰符   s 模式中的点号元字符匹配所有字符 非打印字符 字符  含义  \cx  匹配由x指明的控制字符.例如, \cM 匹配一个 Control-M 或回车符.x 的值必须为 A-Z 或 a-z ...

  6. 2019-03-26-day019-面向对象耦合与组合

    作业 #对象的耦合 class Circle: def __init__(self,r): self.r = r def area(self): return 3.14*self.r**2 def p ...

  7. 整理有关浏览器兼容性的css样式

    去掉IE自带的删除功能的×号 input::-ms-clear{display:none;} 去掉IE自带密码框的眼睛样式 input::-ms-reveal{display:none;}

  8. Spring Boot 揭秘与实战(二) 数据缓存篇 - EhCache

    文章目录 1. EhCache 集成 2. 源代码 本文,讲解 Spring Boot 如何集成 EhCache,实现缓存. 在阅读「Spring Boot 揭秘与实战(二) 数据缓存篇 - 快速入门 ...

  9. [转]ZooKeeper 集群环境搭建 (本机3个节点)

    ZooKeeper 集群环境搭建 (本机3个节点) 是一个简单的分布式同步数据库(或者是小文件系统) ------------------------------------------------- ...

  10. (6个name="hobby"的复选项,两个按钮)来区分三种方法的不同---区别getElementByID,getElementsByName,getElem

    <form>          请选择你爱好:<br>          <input type="checkbox" name="hobb ...