支持向量机缩写是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. MyEclipse创建Web项目入门指南

    MyEclipse 在线订购年终抄底促销!火爆开抢>> MyEclipse最新版下载 本教程将指导您创建和部署简单的Hello World Web项目.在本教程中,您将学习如何: 创建一个 ...

  2. 矩震级Mw与地震矩M0的换算关系

    矩震级实质上就是用地震矩来描述地震的大小.地震矩是震源的等效双力偶中的一个力偶的力偶矩,是继地震能量后的第二个关于震源定量的特征量,一个描述地震大小的绝对力学量,单位为N.m(牛.米),其表达式为: ...

  3. L316 波音737Max 危机

    Boeing Scrambles To Restore Faith In Its 737 MAX Airplane After Crashes In the wake of two deadly cr ...

  4. os与操作系统进行交互,sys解释器相关,random随机数,shutil解压和压缩

    1.os 与操作系统相关 对文件的处理 对路径的处理 import os#主要用于与操作系统进行交互 掌握: print(os.makedirs('a/b/c'))#创建目录 可用递归创建 print ...

  5. FZU 2272 Frog 第八届福建省赛 (鸡兔同笼水题)

    Problem Description Therearex frogs and y chicken in a garden. Kim found there are n heads and m leg ...

  6. ES6 class的继承-学习笔记

    1.简介 Class 可以通过extends关键字实现继承,这比 ES5 的通过修改原型链实现继承,要清晰和方便很多. 子类必须在constructor方法中调用super方法,否则新建实例时会报错. ...

  7. 清除chrome浏览器HSTS缓存

    如果你的网站启用了HSTS 在chrome中会用缓存效果,即使你的站点取消了HSTS,下次访问时,仍旧会自动给你重定向到HSTS. 那么如何清除 HSTS呢? chrome://net-interna ...

  8. google和baidu搜索命令

    在google里面搜索一点儿老外的资料的时候发现搜不到我想要的东西,以前貌似见过一个搜索命令的但是一时想不起来了,所以就去搜索了一下搜索命令,常用的在这里全部列举出来: google:绿色的较为常用的 ...

  9. 【leetcode】27-RemoveElement

    problem RemoveElement class Solution { public: int removeElement(vector<int>& nums, int va ...

  10. MySQL最基本的DML语句

    一.什么叫DML? DML(Data Manipulation Language):数据操作语言.主要操作数据表中的数据,使用DML可以完成以后三件事: 插入数据 修改数据 查询数据 二.具体的语句操 ...