支持向量机SVM算法原理笔记1
最近在学习李航编写的《统计学习方法》一书,看到SVM这一章时遇到了一些困难,在翻阅很多资料之后对其有了一定的理解,所以打算写篇博客来记录一下,后面如果有时间也会把前面几章中的算法加以整理。在看这本书的同时大多加以参考hankcs在码农场中所写的机器学习系列文章,写的很不错,有理论分析也有代码实现,很适合机器学习入门者学习和理解。《统计学习方法》里讲述的太过理论化,假如很多东西我们直接当作已知定理去用可能会更容易理解。所以接下来就直接介绍一些结论,具体的推导可以参考原著或者这篇文章。
首先假设样本集线性可分,其实SVM就是找到一个划分超平面将不同类别样本分开,但是这样的超平面会有很多,我们要找到最鲁棒的那个,即对样本扰动的容忍最好,泛化能力最强的那个划分超平面。用下面的线性方程来表示划分超平面:
所以任何一个样本点到该平面的几何间隔为:
如果所有样本点都可以正确被分类,则我们假设所有点到超平面的距离均大于等于1(可以通过将w和b缩放的形式达到该目标),并且称距离唯一的点为支持向量,两个异类支持向量到划分超平面的距离之和为间隔,如下图所示:
为了找到具有最大间隔的划分超平面(最大化2/||w||),即最小化1/2*||w||,所以我们的模型就转化成了如下所示的具有样本数N个约束条件的凸二次规划问题:
使用拉格朗日乘子法将上述问题转化为其对偶问题,即加入N个拉格朗日乘子。其中原始问题中的参数w和对偶问题中的α之间的关系如右图所示:
有因为其需要满足KKT条件,如下所示。由KKT条件中的3式可知,α_i和y_i*f(x_i)-1二者必有一个为零,也就是说无外乎下面两种情况:
1,α_i=0,这样的样本点对最终的划分超平面的参数W不会产生任何影响,对超平面也没有影响;
2,y_i*f(x_i)-1=0,也就是y_i*f(x_i)=1,这样的样本点就是支持向量的点,位于最大间隔边界上。
所以说最终的划分超平面只与支持向量有关。
**
总结一下就是:
对于给定样本集D={(x1,y1),(x2,y2),。。。,(xN,yN)},找到其划分超平面f(x)=wx+b;
对该问题进行建模,得到如下模型,注意还要满足是那个面提到的KTT条件:
**
所以到这里就完成了SVM模型的建立,接下来就是求解上述问题,如果按照传统的二次规划问题进行求解其复杂度会与样本集大小成正比规模增加,所以Platt等人提出了高效的解决方案SMO算法。SMO算法的具体思路将在下篇博文中加以介绍。
支持向量机SVM算法原理笔记1相关推荐
- 支持向量机SVM算法原理笔记2
上篇博客介绍了当样本集是线性可分情况下的SVM算法原理.接下来介绍不存在一个划分超平面可以正确分类的问题,比如说"异或问题". 对于此类问题,可以将样本空间映射到更高维度空间,这样 ...
- 支持向量机SVM算法原理及应用(R)
支持向量机SVM算法原理及应用(R) 2016年08月17日 16:37:25 阅读数:22292更多 个人分类: 数据挖掘实战应用 版权声明:本文为博主原创文章,转载请注明来源. https://b ...
- 支持向量机SVM算法原理
SVM 的英文叫 Support Vector Machine,中文名为支持向量机.它是常见的一种分类方法,在机器学习中,SVM 是有监督的学习模型. 什么是有监督的学习模型呢?它指的是我们需要事先对 ...
- 【算法原理】支持向量机SVM算法原理
- 机器学习算法 08 —— 支持向量机SVM算法(核函数、手写数字识别案例)
文章目录 系列文章 支持向量机SVM算法 1 SVM算法简介 1.1 引入 1.2 算法定义 2 SVM算法原理 2.1 线性可分支持向量机 2.2 SVM计算过程与算法步骤(有点难,我也没理解透,建 ...
- 【收藏】SVM算法原理(适合有一定基础的人观看)
SVM的英文全称是Support Vector Machines,我们叫它支持向量机.支持向量机是我们用于分类的一种算法.让我们以一个小故事的形式,开启我们的SVM之旅吧. 在很久以前的情人节,一位大 ...
- 支持向量机 (SVM)分类器原理分析与基本应用
转自:穆晨 阅读目录 前言 预备术语 算法原理 如何计算最优超平面 使用SMO - 高效优化算法求解 α 值 非线性可分情况的大致解决思路 小结 回到顶部 前言 支持向量机,也即SVM,号称分类算法, ...
- 小白学习机器学习---第六章:SVM算法原理(1)
SVM的英文全称是Support Vector Machines,我们叫它支持向量机.支持向量机是我们用于分类的一种算法.让我们以一个小故事的形式,开启我们的SVM之旅吧. 在很久以前的情人节,一位大 ...
- svm算法原理_机器学习——分类算法(1)
一. K近邻 KNN算法的基本思想就是在训练集中数据和标签已知的情况下,输入测试数据,将测试数据的特征与训练集中对应的特征进行相互比较,找到训练集中与之最为相似的前K个数据,则该测试数据对应的类别就是 ...
最新文章
- Could not install packages due to an EnvironmentError: [Errno 28] No space left on device
- 如何在CentOS 7中禁止IPv6
- BZOJ 2748: [HAOI2012]音量调节【二维dp,枚举】
- RIS镜像中添加网卡和RAID卡驱动方法及实践经验总结
- 使用canal实现MySQL 8 增量同步数据到 ElasticSearch 7.15.2中 linux
- 绝对零门槛,IDEA两步搭建好Java开发环境
- 关于Java的String字符串常量的长度问题(Error:(14, 22) java: 常量字符串过长)
- 学习笔记:可持久化线段树(主席树):静态 + 动态
- MSDN电子杂志上有关TFS的文章
- Linux内核基础--事件通知链(notifier chain)
- html音乐播放器收起展开代码,JS模拟酷狗音乐播放器收缩折叠关闭效果代码
- mac开机启动项怎么设置
- CVPR2019/图像翻译:TransGaGa: Geometry-Aware Unsupervised Image-to-Image Translation几何感知的无监督图像到图像的翻译
- linux下10款markdown软件
- 【Codeforces Round #185 (Div. 2) D】Cats Transport
- 内存管理Memorynbsp;OC——第九天
- 序幕(计算机基础知识)
- vue3+ts+vite,使用高德api实现搜索城市展示在地图上
- JSP中img标签图片在浏览器中不显示问题
- 医院计算机五大应用系统,医院计算机五大应用系统