Support Vector Machine(1):线性可分集的决策边界
与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):线性可分集的决策边界的更多相关文章
- Support Vector Machine(2):Lagrange Duality求解线性可分SVM的最佳边界
在上篇文章<Support Vector Machine(1):线性可分集的决策边界>中,我们最后得到,求SVM最佳Margin的问题,转化为了如下形式: 到这一步后,我个人又花了很长的时 ...
- 支持向量机(Support Vector Machine,SVM)—— 线性SVM
支持向量机(Support Vector Machine,简称 SVM)于 1995 年正式发表,由于其在文本分类任务中的卓越性能,很快就成为机器学习的主流技术.尽管现在 Deep Learnin ...
- 支持向量机 support vector machine
SVM(support Vector machine) (1) SVM(Support Vector Machine)是从瓦普尼克(Vapnik)的统计学习理论发展而来的,主要针对小样本数据进行学习. ...
- A glimpse of Support Vector Machine
支持向量机(support vector machine, 以下简称svm)是机器学习里的重要方法,特别适用于中小型样本.非线性.高维的分类和回归问题.本篇希望在正篇提供一个svm的简明阐述,附录则提 ...
- 支持向量机SVM(Support Vector Machine)
支持向量机(Support Vector Machine)是一种监督式的机器学习方法(supervised machine learning),一般用于二类问题(binary classificati ...
- 机器学习算法 --- SVM (Support Vector Machine)
一.SVM的简介 SVM(Support Vector Machine,中文名:支持向量机),是一种非常常用的机器学习分类算法,也是在传统机器学习(在以神经网络为主的深度学习出现以前)中一种非常牛X的 ...
- 机器学习之支持向量机(Support Vector Machine)
转载请注明出处:http://www.cnblogs.com/Peyton-Li/ 支持向量机 支持向量机(support vector machines,SVMs)是一种二类分类模型.它的基本模型是 ...
- 6. support vector machine
1. 了解SVM 1. Logistic regression 与SVM超平面 给定一些数据点,它们分别属于两个不同的类,现在要找到一个线性分类器把这些数据分成两类.如果用x表示数据点,用y表示类别( ...
- 5. support vector machine
1. 了解SVM 1. Logistic regression回顾 Logistic regression目的是从特征中学习出一个0/1二分类模型,而这个模型是将特性的线性组合作为自变量,由于自变量的 ...
随机推荐
- [C] Re-execute itself from elf file.
Re-execute itself from elf file. #define _GNU_SOURCE #include <sched.h> #include <stdio.h&g ...
- IntelliJ IDEA 创建spring boot 的Hello World 项目
1.Open IDEA,choose "New-->Project" 2.Choose "Spring Initializr" 3. Choose jav ...
- VirtualBox中安装CentOS 7后无法上网问题
1.在VirtualBox的设置界面,点击“网络”, 将虚拟机的“连接方式”设置为桥接模式, “界面名称”选择笔记本的无线网卡(一般是“wireless Network”的选项) 将“接入网线”勾选上 ...
- iconv 转换文件的编码格式
1.命令功能 icnov用于转换文件的编码格式 linux默认中没有icnov文件,需要自己安装http://www.gnu.org/software/libiconv/. (1)下载libiconv ...
- [BJWC2010]严格次小生成树(LCA,最小生成树)
[BJWC2010]严格次小生成树 题目描述 小C最近学了很多最小生成树的算法,Prim算法.Kurskal算法.消圈算法等等.正当小C洋洋得意之时,小P又来泼小C冷水了.小P说,让小C求出一个无向图 ...
- JFreeChart使用
最近项目需要做图形分析,就想到了使用JFreeChart,之前也没有使用过,就现学先用吧.本文主要记录一些主要的代码及学习使用过程. 使用JFreeChart步骤: 一.下载JFreeChart.ja ...
- 【串线篇】spring boot自动配置原理
配置文件到底能写什么?怎么写?自动配置原理: 配置文件能配置的属性参照 一.自动配置原理: 1.1.SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfigur ...
- JavaScript 工作原理之十-使用 MutationObserver 监测 DOM 变化
原文请查阅这里,略有删减,本文采用知识共享署名 4.0 国际许可协议共享,BY Troland. 本系列持续更新中,Github 地址请查阅这里. 这是 JavaScript 工作原理的第十章. 网络 ...
- springCloud 服务提供者应返回的统一的数据格式
package com.zledu.commonentity.entity; import lombok.AllArgsConstructor;import lombok.Data; import j ...
- macOS BLAS LAPACK
/System/Library/Frameworks/Accelerate.framework/Frameworks/vecLib.framework/Headers