学习笔记21-SVM支持向量机
来源:互联网 发布:oracle数据库备份方法 编辑:程序博客网 时间:2024/06/05 12:35
支持向量机
首先支持向量机是一种算法,有时候机器学习的书喜欢把算法称为”machine”,所以翻译为机器。而支持向量(Support Vector),我们接下来解释。
最大间隔分离超平面
先讲一个二分类问题,一个二维平面上有若干个点,我们要用一条界线(或者是一个平面)把它们分成两部分,就是一个二分类问题。这个二维平面叫“特征空间”,上面的点称为“样本点”,每一个样本点可以用一个“特征向量”来表示。比如下图:
其实这里可以理解为一个约束最优化问题,我们的目标是求得一个“分界”,这个分界可以具体化为一个“分离超平面”,它由一个法向量w和截距b决定。并且正负样本点到这个超平面的“距离”最大。
所以我们转换为求极值问题。这里引入了拉格朗日函数求极值,如果忘记了请参考高数课本下册。
上面的例子中,距离超平面最近的样本点,我们称为“支持向量(Support Vector)”,就是例子中的x1(3,3)和x2(1,1)。
对偶问题
有时候,上述问题比较难求解,我们可以通过求解对偶问题来得到原始问题的最优解。这里需要用到拉格朗日对偶性:
具体可以参考这篇博客
比如上面的例子,我们要求min L(w,a,b),那么可以先求L(w,a,b)对w的极小值,也就是定义一个式子Q(a,b)=min L(w,a,b),注意这里等号右边是只关于w的函数。解得满足条件的w肯定是由a,b表示的,然后我们再求对a,b的极大值,就能得到最终的解。就是考虑Q(a,b)的极大值max Q(a,b)。
上面的问题称为原始问题min L(w,a,b)的对偶问题。
核函数
上面的讨论都假设样本是线性可分的,但是实际问题中,原始的样本空间中可能不存在一个能正确划分两类样本的超平面,比如下图就不能用一条直线很好地划分两个类别:
对于这种线性不可分的情况,我们可以将样本从原始空间映射到一个更高维的特征空间,使得映射后的样本空间中能找到一个合适的划分超平面。
这种非线性变换引入了核函数的定义:
我们设X是输入空间,设H是特征空间,如果存在一个从X到H的映射:Q(X)=H,使得对所有的x,z,有一个函数K(x,z)=Q(x)Q(z) (表示Q(x)和Q(z)的内积),那么我们称K(x,z)为核函数,Q(x)为映射函数。
如下图:
常用的核函数如下:
- 学习笔记21-SVM支持向量机
- SVM(支持向量机)学习笔记
- 支持向量机SVM学习笔记
- 支持向量机(SVM)学习笔记
- 支持向量机(SVM)学习笔记
- SVM支持向量机学习笔记
- 学习笔记-支持向量机(SVM)
- 支持向量机学习笔记-SVM
- 支持向量机(SVM)笔记
- 支持向量机SVM学习
- 【SVM学习笔记】支持向量机学习1
- 【SVM学习笔记】支持向量机学习2
- 【SVM学习笔记】支持向量机学习3
- 机器学习-支持向量机SVM学习笔记一
- 机器学习-支持向量机SVM学习笔记二
- 深度学习*学习笔记----支持向量机SVM(3)
- 机器学习笔记08:支持向量机(一)(SVM)
- [机器学习笔记]Note10--支持向量机(SVM)
- Oracle 获取指定区域月份或日期前后时间或者月份
- 【Android】状态栏相关适配(判断MIUI,Flyme,状态栏图标颜色切换,获取状态栏高度,沉浸式状态栏相关等)
- ubuntu16.04+opencv3.1.0
- Android快速开发系列 10个常用工具类
- html标签中物理标记和逻辑标记区别
- 学习笔记21-SVM支持向量机
- effective C++条款四十六解读
- C++ dll 类型与 C#类型对应关系
- Qmake
- Java 反射有效的修改 final 属性值
- C语言中的printf用%d输出float类型数据出现或以%f输出int型数据的结果为什么是0
- RPM软件包的安装及卸载
- RecyclerView里notifyItemRemoved的坑
- 从Java角度分析Python的入门介绍