支持向量机SVM进阶
本文适合于对SVM基本概念有一点了解的童鞋。
SVM基本概念:
- 最大边缘平面——基本原理:结构风险最小化
- 分类器的泛化误差
- 支持向量
问题描述:
请对一下数据,利用svm对其进行分类。
图1
看到这张图之后,发现这是一个线性可分的二分类问题。
数据是这样的:
y=1 | 类别1 | y=-1 | 类别2 | ||
x1 | x2 | x1 | x2 | ||
x1 | 0 | 0 | x4 | 3 | 3 |
x2 | 1 | 0 | x5 | 3 | 0 |
x3 | 0 | 1 | x6 | 0 | 3 |
图2
可以看到,点XA(XA1,XA2)和点XB(XB1,XB2)在决策边界上,因此,他们符合:
w·xA+b=0
w·xB+b=0
对于任何在决策边界上方的三角形X三角形,我们可以证明:
w·x三角形+b=k == > k>0
同理,对于任何在决策边界下方的三角形X圆形,我们可以证明:
w·x圆形+b=k’ == > k’<0
因此,我们可以用以下方式预测任何测试样本z的类型:
类别1 y=1 如果w·z+b>0
类别2 y=-1 如果w·z+b<0
————————————美丽的分割线之STEP2——————————————
下面,我们来考虑一下支持向量,两个超平面可以表示如下:
bi1:w·x+b=1
bi2:w·x+b=-1
(PS:这里是一定能够表示为上面的形式,因为你可以对式子两边同时进行等倍的放大和缩小)
假设,xm和xn分别为类1和类2上的点,那么:
图3(图画的不太好,请谅解)
将xm和xn分别代入公式,则边缘d可以通过两式相减得到:
w·(x1-x2)=2 模模cosθ
||w||✕d=2 可以理解为点到直线的距离
∴d=2 / ||w||
其中,||w||表示范数,这里的||w||可以理解为向量w的模(向量范数:向量x的2范数是x中各个元素平方之和再开根号),若向量w=(w1,w2),那么||w||=(w12+w22)1/2。这里,我们暂时还不知道哪些点是支持向量上的点。
————————————美丽的分割线之STEP3—————————————
SVM的训练目标就是训练出最优的W和b
让我们再来简单回顾一下:
yi=1: w·xi+b≥1
yi=-1: w·xi+b≤-1
这个条件要求,所有类别为1的训练实例(即三角形),都必须位于超平面w·x+b=1上或位于它的上方,而那些类别为2的训练实例(即圆圈)都必须位于超平面w·x+b=-1上或位于它的下方。我们可以整理出一个比较紧凑的形式:
yi(w·xi+b)≥1 , i=1,2(本例中,是二维的,故i取1和2)
尽管前面的条件可以用于其他的线性分类器,但是SVM增加了一个要求:决策边界的边缘必须是最大的。然而,最大化边缘等价于最小化下面的目标函数:
max (d=2 / ||w||) == min (||w||2 / 2)
也就是说,我们当前的目的就是
由于目标函数是二次的,而约束在参数w和b上是线性的,因此,这个问题是一个凸(convex)优化问题,可以通过标准的拉格朗日乘子法解决。
整理一下得到该优化问题的拉格朗日算子:
下面,根据题目,我们把具体的数据代入式子展开后得到:
因为拉格朗日乘子是未知的,因此我们仍然不能得到向量w和b的解。请仔细揣摩书上的话:
决策边界的参数w和b仅依赖于这些支持向量
也就是说,我们利用二次规划的方法可以求出在支持向量上的点的λ值(不在支持向量上的点,λ值都为0,即拉格朗日乘子都为0)。
当我们知道所有λ的值之后,根据我们就可以算出w1和w2,然后在根据就可以求出b的值。
这样,我们就圆满的完成了任务。
————————————美丽的分割线之STEP4——————————————
那么,当线性不可分的时候,我们该如何转化呢?这时就要涉及到一些更高级的东东,未完待续。
支持向量机SVM进阶的更多相关文章
- 【IUML】支持向量机SVM
从1995年Vapnik等人提出一种机器学习的新方法支持向量机(SVM)之后,支持向量机成为继人工神经网络之后又一研究热点,国内外研究都很多.支持向量机方法是建立在统计学习理论的VC维理论和结构风险最 ...
- 机器学习:Python中如何使用支持向量机(SVM)算法
(简单介绍一下支持向量机,详细介绍尤其是算法过程可以查阅其他资) 在机器学习领域,支持向量机SVM(Support Vector Machine)是一个有监督的学习模型,通常用来进行模式识别.分类(异 ...
- 以图像分割为例浅谈支持向量机(SVM)
1. 什么是支持向量机? 在机器学习中,分类问题是一种非常常见也非常重要的问题.常见的分类方法有决策树.聚类方法.贝叶斯分类等等.举一个常见的分类的例子.如下图1所示,在平面直角坐标系中,有一些点 ...
- 机器学习算法 - 支持向量机SVM
在上两节中,我们讲解了机器学习的决策树和k-近邻算法,本节我们讲解另外一种分类算法:支持向量机SVM. SVM是迄今为止最好使用的分类器之一,它可以不加修改即可直接使用,从而得到低错误率的结果. [案 ...
- 机器学习之支持向量机—SVM原理代码实现
支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...
- 支持向量机SVM——专治线性不可分
SVM原理 线性可分与线性不可分 线性可分 线性不可分-------[无论用哪条直线都无法将女生情绪正确分类] SVM的核函数可以帮助我们: 假设‘开心’是轻飘飘的,“不开心”是沉重的 将三维视图还原 ...
- 一步步教你轻松学支持向量机SVM算法之案例篇2
一步步教你轻松学支持向量机SVM算法之案例篇2 (白宁超 2018年10月22日10:09:07) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...
- 一步步教你轻松学支持向量机SVM算法之理论篇1
一步步教你轻松学支持向量机SVM算法之理论篇1 (白宁超 2018年10月22日10:03:35) 摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于 ...
- OpenCV 学习笔记 07 支持向量机SVM(flag)
1 SVM 基本概念 本章节主要从文字层面来概括性理解 SVM. 支持向量机(support vector machine,简SVM)是二类分类模型. 在机器学习中,它在分类与回归分析中分析数据的监督 ...
随机推荐
- NetBeans IDE集成Maven
NetBeans6.7更新版本已经内置对Maven支持.如遇以前的版本,Maven插件在插件管理器中可用.我们正在使用NetBeans在这个例子中使用6.9. 在NetBeans一些特点如下 您可以从 ...
- LintCode #2 尾部的零
计算阶乘尾部的0的个数,初一看很简单. 先上代码 public static long GetFactorial(long n) { || n == ) ; ); } //Main方法中调用 ); ; ...
- unity---各种资源对应的格式
我们打包AssetBundle后,Unity3D会根据文件的后缀名将文件转换为特定的类型对象存储起来,我们后期获取时需要根据这些类型取出打包的数据,这里记录下不同后缀文件打包后的类型. 文本格式 支持 ...
- Redis集群的操作
1.原始集群 1.1 启动Redis集群 [root@cent03 ~]# /usr/local/redis/bin/redis-server /usr/local/redis-cluster/ ...
- 转载: 让我们聊聊Erlang的nif中资源的安全释放
让我们聊聊Erlang的nif中资源的安全释放 http://my.oschina.net/u/236698/blog/479221
- 文本处理三剑客之 sed详解
1.简介 sed是非交互式的编辑器,它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下 ...
- 使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录
ssh-keygen 产生公钥与私钥对. ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中,ssh-copy-id也能让你有到远程机器的home, ~./ss ...
- JQuery $.each遍历JSON字符串报Uncaught TypeError:Cannot use 'in' operator to search for
查看一个简单的jQuery的例子来遍历一个JavaScript数组对象. [js] view plaincopy var json = [ {"id":"1" ...
- PHP获取MySql新增记录ID值的3种方法
From: http://www.jb51.net/article/51473.htm 这篇文章主要介绍了PHP获取MySql新增记录ID值的3种方法,一般使用PHP自带函数mysql_insert_ ...
- SharePoint 使用ECMAscript对象模型来读取帖子列表
本随笔讲述如何用JavaScript来读取SharePoint 2013 中blog相关的帖子列表. ASCX File Content: <div id="divGetItemsFr ...