SVM原理(1)
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)的更多相关文章
- Support Vector Machine (1) : 简单SVM原理
目录 Support Vector Machine (1) : 简单SVM原理 Support Vector Machine (2) : Sequential Minimal Optimization ...
- 机器学习之支持向量机—SVM原理代码实现
支持向量机—SVM原理代码实现 本文系作者原创,转载请注明出处:https://www.cnblogs.com/further-further-further/p/9596898.html 1. 解决 ...
- SVM原理与实践
SVM迅速发展和完善,在解决小样本.非线性及高维模式识别问题中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中.从此迅速的发展起来,已经在许多领域(生物信息学,文本和手写识别等)都取 ...
- 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 ...
- (一)SVM原理
前言 本文开始主要介绍一下SVM的分类原理以及SVM的数学导出和SVM在Python上的实现.借鉴了许多文章,会在后面一一指出,如果有什么不对的希望能指正. 一. SVM简介 首先看到SVM是在斯坦福 ...
- 机器学习 | 深入SVM原理及模型推导(一)
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第32篇文章,我们来聊聊SVM. SVM模型大家可能非常熟悉,可能都知道它是面试的常客,经常被问到.它最早诞生于上世纪六 ...
- 支持向量机(SVM)原理详解
SVM简介 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机:SVM还包括核技巧, ...
- SVM原理简介
本文只是简单介绍一下SVM的理论框架,想要详细了解当中细节问题处理可以参看后续章节或者网上各种详细资料.推荐Andrew Ng的斯坦福大学机器学习课程. 年代中期发展起来的基于统计学习理论的一种机器学 ...
- 支持向量机SVM原理_python sklearn建模乳腺癌细胞分类器(推荐AAA)
项目合作联系QQ:231469242 sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频) https://study.163.com/course/introduction.htm?cours ...
随机推荐
- IOS-textField
//初始化textfield并设置位置及大小 UITextField *text = [[UITextField alloc]initWithFrame:CGRectMake(20, 20, 130, ...
- 主成份分析PCA
Data Mining 主成分分析PCA 降维的必要性 1.多重共线性--预测变量之间相互关联.多重共线性会导致解空间的不稳定,从而可能导致结果的不连贯. 2.高维空间本身具有稀疏性.一维正态分布有6 ...
- 使用Qt创建第一个OpenCV的Gui应用
写在前面 学习OpenCV有一些小日子了,发现群里还有很多初学OpenCV的人像我当初一样跌跌撞撞到处找资料,所以在这里把学习笔记分享给大家,希望有志学习OpenCV进行计算机视觉活动的小伙伴们能少走 ...
- jQuery慢慢啃之事件(七)
1.ready(fn)//当DOM载入就绪可以查询及操纵时绑定一个要执行的函数. $(document).ready(function(){ // 在这里写你的代码...}); 使用 $(docume ...
- Vim简明教程【CoolShell】
vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的.下面的文章翻译自<Learn Vim Progress ...
- TestNG Listener
常用接口 IExecutionListener 监听TestNG运行的启动和停止. IAnnotationTransformer 注解转换器,用于TestNG测试类中的注解. ISuiteList ...
- ZOJ 3872 Beauty of Array
/** Author: Oliver ProblemId: ZOJ 3872 Beauty of Array */ /* 需求: 求beauty sum,所谓的beauty要求如下: 1·给你一个集合 ...
- css编译工具Sass中混合宏,继承,占位符分别在什么时候使用
//SCSS中混合宏使用 @mixin mt($var){ margin-top: $var; } .block { @include mt(5px); span { display:block; @ ...
- python类class基础
44.class类: 一.类定义的一般形式: 1.简单的形式:实例化对象没有自己独有 ...
- 《学习OpenCV》 第四章 习题六
实现的是一个图像标签编辑器,其间遇到了些问题还未解决或者可能解决方法上不是最优,若你有更好的思路可以提供给我,大恩不言谢啦!!☆⌒(*^-゜)v. #include "stdafx.h&qu ...