Logistuc Regression相比,SVM是一种优化的分类算法,其动机是寻找一个最佳的决策边界,使得从决策边界与各组数据之间存在margin,并且需要使各侧的margin最大化。比较容易理解的是,从决策边界到各个training example的距离越大,在分类操作的差错率就会越小。因此,SVM也叫作Large Margin Classifier。

最简单的情况是,在二维平面中的,线性可分情况,即我们的training set可以用一条直线来分割称为两个子集,如下图所示。而在图中我们可以看到,H2和H3都可以正确的将training set进行分类,但细细想来,使用H2进行分类的话,我们对于靠近蓝线的几个训练样例其实是不敢说100%的,但对于离蓝线最远的小球,我们却很有把握。这也是H3这条SVM红线出现的原因:尽量让两侧的训练样例远离决策边界,从而让我们的分类系统有把握对每个球Say Absolutely。

Logistic Regression中,我们将类别y定义为0和1,从而把h(x)看做p(y=1)的概率,而在SVM里,我们将其定义为-1和+1。而我们所需要在n维空间中寻找的超平面,则被定义为:

由此,分类函数可以定义为:

将training example的坐标带入可以得到三种结果:f(x)=0,则该点处于决策平面上;f(x)>0,属于y=1类;f(x)<0,属于y=-1类。而对于每个训练样例,我们可以通过计算如下定义的“函数间隔”(functional margin),来判断是否分类正确(数值为负则说明错误),以及通过数值大小看出测试点与决策平面的距离:

而真正表征SVM决策边界margin宽窄的,是上式中值最小的那个,也就是说,距离边界最近的点,其到边界的距离,决定了margin的大小。

而上式得出的函数间隔,实际上并不是该间隔真正的长度值,所以我们需要计算“几何间隔”(geometric margin),即点到平面距离公式:

带入SVM公式,的几何间隔计算公式:

此时,我们想要做的事情是,最大化这个几何距离:

那么,如此看来,我们已经ok了,如下图:

我们现在得到的三个hyperplane的方程为:

在这种情况下,margin是多少呢,根据平行线的距离公式:

在这里其实我纠结了很长时间,因为很多课程从此就说的不太详细了,也许是我个人的数学水平较差吧,所以就花了很久去思考。首先,我们考虑到这个几何距离gamma,肯定是一个常数,因为当我们的f(x)确定,数据集确定以后,它就是离f(x)最近的点到f(x)=0这条直线的距离。那么,我们上述的三个方程,同时除以一个常数,一切会改变吗?首先,可以确定,3个方程一点也不会变,2x+4=6与x+2=3,是一样的对吗?那么我当时就想了,这波操作后,margin肯定会变的!实际上,由于gamma和w之间的线性关系,margin也是不变的,所以相当于,我们修改了w,从而消去了gammar。

而单边的margin则等于总margin的一半:

则问题转化为:

求解w的过程请见:Support Vector Machine(2):求解线性可分SVM的最佳边界

Support Vector Machine(1):线性可分集的决策边界的更多相关文章

  1. Support Vector Machine(2):Lagrange Duality求解线性可分SVM的最佳边界

    在上篇文章<Support Vector Machine(1):线性可分集的决策边界>中,我们最后得到,求SVM最佳Margin的问题,转化为了如下形式: 到这一步后,我个人又花了很长的时 ...

  2. 支持向量机(Support Vector Machine,SVM)—— 线性SVM

      支持向量机(Support Vector Machine,简称 SVM)于 1995 年正式发表,由于其在文本分类任务中的卓越性能,很快就成为机器学习的主流技术.尽管现在 Deep Learnin ...

  3. 支持向量机 support vector machine

    SVM(support Vector machine) (1) SVM(Support Vector Machine)是从瓦普尼克(Vapnik)的统计学习理论发展而来的,主要针对小样本数据进行学习. ...

  4. A glimpse of Support Vector Machine

    支持向量机(support vector machine, 以下简称svm)是机器学习里的重要方法,特别适用于中小型样本.非线性.高维的分类和回归问题.本篇希望在正篇提供一个svm的简明阐述,附录则提 ...

  5. 支持向量机SVM(Support Vector Machine)

    支持向量机(Support Vector Machine)是一种监督式的机器学习方法(supervised machine learning),一般用于二类问题(binary classificati ...

  6. 机器学习算法 --- SVM (Support Vector Machine)

    一.SVM的简介 SVM(Support Vector Machine,中文名:支持向量机),是一种非常常用的机器学习分类算法,也是在传统机器学习(在以神经网络为主的深度学习出现以前)中一种非常牛X的 ...

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

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

  8. 6. support vector machine

    1. 了解SVM 1. Logistic regression 与SVM超平面 给定一些数据点,它们分别属于两个不同的类,现在要找到一个线性分类器把这些数据分成两类.如果用x表示数据点,用y表示类别( ...

  9. 5. support vector machine

    1. 了解SVM 1. Logistic regression回顾 Logistic regression目的是从特征中学习出一个0/1二分类模型,而这个模型是将特性的线性组合作为自变量,由于自变量的 ...

随机推荐

  1. LeetCode102. 二叉树的层次遍历

    102. 二叉树的层次遍历 描述 给定一个二叉树,返回其按层次遍历的节点值. (即逐层地,从左到右访问所有节点). 示例 例如,给定二叉树: [3,9,20,null,null,15,7], 3 / ...

  2. 类的基本概念及self是什么东西?

    class 类 对一类拥有相同属性的对象的抽象.蓝图.原型,在类中定义了这些对象都具备的属性.共同方法 object对象 一个对象就是一个类的实例化模型,一个类必须经过实例化后才能在程序中调用,一个类 ...

  3. 时间戳位数不够13位,通过es6 的padEed补零

    if(val.toString().length == 10){ val = val.toString().padEnd(13,"0")*1 //不够十三位放后面补零,超过13位也 ...

  4. WPF绑定各种数据源之xml数据源

    一.WPF绑定各种数据源索引 WPF 绑定各种数据源之Datatable WPF绑定各种数据源之object数据源 WPF绑定各种数据源之xml数据源 WPF绑定各种数据源之元素控件属性 Bindin ...

  5. Hibernate Validation与Spring整合各注解的用法Demo

    转自:https://www.aliyun.com/jiaocheng/1315650.html <dependency> <groupId>org.hibernate< ...

  6. JavaScript中的垃圾收集机制

     JavaScript 具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中使用的内存. 在编写 JavaScript 程序时,开发人员不用再关心内存使用问题,所需内存的分配以及无用内存的 ...

  7. CAS实现SSO单点登录

    环境 cas-server-4.1.8,cas-client-3.4.0,Java-8,Maven-3,Tomcat-7.0.72 CAS Server 安装 点此进入 CAS 下载列表,选择下载 c ...

  8. C++数组读入MATLAB数据

    data = rand(8, 10); fid = fopen('File.data', 'w'); if fid == - 1 error('Cannot open file for writing ...

  9. sklearn.metrics.mean_absolute_error

    注意多维数组 MAE 的计算方法 * >>> from sklearn.metrics import mean_absolute_error >>> y_true ...

  10. RMQ Fanout

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11795256.html RMQ Fanout Project Directory Maven Depe ...