SVM即支持向量机,是一种机器学习内的二类分类方法,是有监督学习方法。

首先我们需要建立一个分类任务:

首先考虑线性可分的情况:(所谓线性可分就是在N维空间上的两类点,可以用N-1个未知数的函数(超平面)把其分为两类的情况),

如下图是一个简单的线性可分,二维平面上的两类点可以被一个y=kx+b的函数区分为两类

如上图,SVM就是要得到一个最好的超平面使得模型拥有最好的泛化能力(泛化能力,即对于新数据标签预测准确率的度量)

根据上图的描述,我们可以看到,在这个二维平面上,我们是要得到一个直线的方程y=kx+b,,使得区分开两类点,并且对于新的数据点划分类别的能力也最强。

那么如何使得泛化能力最强呢?

这里SVN考虑的方式是:

在一个超平面上,我们假设最终得到的最优超平面的方程是:w X + b =0

这里的w、b都是n维空间的向量,n维空间的数据点都是一个n维向量的形式。设方程为Y = w X + b

1.处于超平面上方的点Xi使得w Xi + b>0,并且随着距离增加->无穷大

2.处于超平面上方的点Xj使得w Xj + b<0,并且随着距离增加->负无穷大

由以上两点可以知道,距离超平面越远的点,Y越大。svm认为距离一个点距离分类超平面的远近可以表示分类预测的确信程度。

由此引出函数间隔和几何间隔:

函数间隔还不够,这是因为,根据函数间隔的方程可以看出来,把w、b改为2w、2b后,函数间隔变大了两倍,但是方程却并没有变化,所以这还需要对函数间隔加入一个约束||w||,使得间隔的衡量不会因为w、b改变而变化,这里给出几何间隔的定义:

这样我们的问题就变成了,最优的超平面《==》数据集之间的几何间隔最大:

得到以下方程:(几何间隔最大,条件为所有的数据点的到超平面的距离都大于几何间隔)

根据函数间隔和几何间隔的关系,得到下式:(基本上是一个代入简化的问题)

对于这里还可以进一步优化:

得到的问题是一个经典的凸二次规划问题:(约束最优化,7.13前者是求最优,7.14是给出的约束)

数学书有人对这样的问题提出过很好的统一的解法:KKT方法等,这个我不深入讨论,(因为也不太懂-_-)

我所知道的是,svm从这个最优化问题中可以得到w、b的解,(我们假设出了方程,构造问题求解方程的参数就得到了超平面的方程)

什么是支持向量:

支持向量是如下图中的距离分类超平面最近的点,在虚线上点都是支持向量,其实整个svm的模型构建只与这些个支持向量有关,去掉支持向量以外的点并不会影响模型的构建,即只要支持向量没变,那得到的还是一样的模型。

因为我们前面讨论过了函数间隔对于该最优化问题其实是不影响的,所以我们假设函数间隔=1来处理这个等价的最优化问题。

所以我们看下图的描述,几何间隔就是 1/||w||(定义为点到超平面上的),两类数据之间的最小几何距离为2/||w||

(未完)

SVM原理(1)的更多相关文章

  1. Support Vector Machine (1) : 简单SVM原理

    目录 Support Vector Machine (1) : 简单SVM原理 Support Vector Machine (2) : Sequential Minimal Optimization ...

  2. 机器学习之支持向量机—SVM原理代码实现

    支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...

  3. SVM原理与实践

    SVM迅速发展和完善,在解决小样本.非线性及高维模式识别问题中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中.从此迅速的发展起来,已经在许多领域(生物信息学,文本和手写识别等)都取 ...

  4. SVM原理以及Tensorflow 实现SVM分类(附代码)

    1.1. SVM介绍 1.2. 工作原理 1.2.1. 几何间隔和函数间隔 1.2.2. 最大化间隔 - 1.2.2.0.0.1. \(L( {x}^*)\)对$ {x}^*$求导为0 - 1.2.2 ...

  5. (一)SVM原理

    前言 本文开始主要介绍一下SVM的分类原理以及SVM的数学导出和SVM在Python上的实现.借鉴了许多文章,会在后面一一指出,如果有什么不对的希望能指正. 一. SVM简介 首先看到SVM是在斯坦福 ...

  6. 机器学习 | 深入SVM原理及模型推导(一)

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第32篇文章,我们来聊聊SVM. SVM模型大家可能非常熟悉,可能都知道它是面试的常客,经常被问到.它最早诞生于上世纪六 ...

  7. 支持向量机(SVM)原理详解

    SVM简介 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机:SVM还包括核技巧, ...

  8. SVM原理简介

    本文只是简单介绍一下SVM的理论框架,想要详细了解当中细节问题处理可以参看后续章节或者网上各种详细资料.推荐Andrew Ng的斯坦福大学机器学习课程. 年代中期发展起来的基于统计学习理论的一种机器学 ...

  9. 支持向量机SVM原理_python sklearn建模乳腺癌细胞分类器(推荐AAA)

    项目合作联系QQ:231469242 sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?cours ...

随机推荐

  1. cas sso单点登录系列8_抛弃Https让Cas以Http协议提供单点登录服务

    转:http://blog.csdn.net/ycyk_168/article/details/18668951 本文环境: 1.apache-tomcat-7.0.50-windows-x86 2. ...

  2. c++面试(一)

    1.在c++中可以通过"::"来直接操作全局变量. 2.i++与++i效率的比较. (1)內建数据类型时,他们的效率差别不大. (2)自定义数据类型(类等)的情况,(++i)可以返 ...

  3. javascript--”原路返回“

    css代码: <style type="text/css"> * { margin: 0px; padding: 0px; font-family: "mic ...

  4. 运用BeanUtils构建通用的查询 更新方法(个人拙作,不喜勿喷)

    ------------------------------------更新方法----------------------------------- public void update(Strin ...

  5. ubuntu 升级命令

    apt-get update && apt-get dist-upgrade

  6. MySql数据库4【命令行赋权操作】

    MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户 一.grant 普通数据用户,查询.插入.更新.删除 数据库中所有表数据的权利. grant selec ...

  7. Redux1

    Redux 写在前面 写React也有段时间了,一直也是用Redux管理数据流,最近正好有时间分析下源码,一方面希望对Redux有一些理论上的认识:另一方面也学习下框架编程的思维方式. Redux如何 ...

  8. 全国省市区Json文件 ,做省市区联动很轻松

    省份 [{"name":"安徽省", "code":"340000"},{"name":" ...

  9. 【Linux】基础配置-修改命令提示符的风格

    1,效果图: [groot]$ 2,设置步骤: 编辑~/.bashrc文件,在最后增加设置行: #显示当面目录的最后一层目录#PS1='\[\e[32m\][\u@\h \W]$\[\e[m\]'#只 ...

  10. BZOJ 1263 整数划分

    Description 从文件中读入一个正整数\(n\).要求将\(n\)写成若干个正整数之和,并且使这些正整数的乘积最大. 例如,\(n=13\),则当\(n\)表示为\(4+3+3+3\)(或\( ...