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. OpenSSL安装及目录介绍

    1. 下载安装OpenSSL 2. 根据需要下载安装Visual C++ Redistributable 3. 安装完成OpenSSL后,目录结构如下所示 其中,bin文件夹下是OpenSSL主程序的 ...

  2. hdoj 2191(多重背包)

    悼念512汶川大地震遇难同胞——珍惜现在,感恩生活 Time Limit : 1000/1000ms (Java/Other)   Memory Limit : 32768/32768K (Java/ ...

  3. 关于javascript延迟加载图片

    今天在技术群中,有位童鞋问起了javascript延迟加载图片的问题,我在这就给大家说明下原理和实现方法. 延迟加载是通过自定义属性,把真实的img地址存到自定义属性中,如data-url=”img” ...

  4. QTP10破解

    1. 下载QTP10.0版本 http://h30302.www3.hp.com/prdownloads/T6510-15063.zip?ordernumber=380454070&itemi ...

  5. python模块之hashlib加密

    40.加密模块:hashlib      1.           >>> import hashlib >>> ret1 = hashlib.md5()     ...

  6. block 数组排序

    #import <Foundation/Foundation.h> //定义⼀一个block,返回值为BOOL,有两个NSString参数.实现:判 //断字符串是否相等. BOOL (^ ...

  7. Oracle问题解决(远程登录失败)

    远程机: 安装 Oracle 的计算机: 本地机: 访问远程机 Oracle 的计算机. 一.问题描述 远程机安装 Oracle 成功. 本地机配置 InstantClient 后, PLSql De ...

  8. Java 可视化垃圾回收

    基础 当谈到释放不再使用的内存,垃圾回收已经在很大程度上取代了早期技术,比如手动内存管理和引用计数. 这是件好事,因为内存管理令人厌烦,学究式地簿记是计算机擅长的,而不是人擅长的.在这方面,语言的运行 ...

  9. yum仅下载RPM包不安装

    http://www.ttlsa.com/linux/howto-yum-download-rpm-without-install/

  10. 一点BPXA的思考

    懂的人自然懂... BPXA功能配置 这个概念现在还有印象,记录下来: 一,BPXA是用于BP使用第三方资源的.如使用ORACLE数据库,就是在XA里配置.它的特征是以<xa>开头 二,B ...