分类:支持向量机(四)——非线性支持向量机
前面介绍的支持向量机都是在数据线性可分条件下的,但我们拿到训练数据时,并不一定能知道数据是否线性可分,低维数据可以通过可视化的方式观察是否线性可分,而高维数据则很难判断其是否线性可分了。对线性不可分数据强行构建线性支持向量机分类可能会导致很差的分类效果,本篇博文就介绍一下如何在数据线性不可分条件下构建非线性支持向量机。
1.非线性情况
在二维空间中,考虑如下一组数据
无论如何都找不到一条直线将两组数据(红色和蓝色的点)合理的分隔开,但是图中红色的圆能将这两组数据完美的分隔开,那按照线性SVM中最优分类超平面的思路,我们能不能找到一个最优的分类圆呢?在这个例子中我相信是可以的(尽管我没实践过),但一般情况下很难决定用什么几何特征来实现数据的分隔,一方面是因为无法有效的可视化这些数据,另一方面是因为在高维空间中很难定义几个几何图形,那这种情况下该怎么考虑?我们能不能将非线性特征转化为线性特征呢?答案是可以的,做法就是建立一个新的维度空间,并且定义新的坐标值,还是以圆为例,在二维空间中,圆的方程式为
我们建立一个新的5维空间,将该5维空间中每个坐标轴定义如下:
那么在这个新的5维空间中,圆的方程为:
这样,就成了超平面方程了。同样的,将原先的数据的坐标也映射到新的5维空间中,这样就成了线性可分的情况了,因此我们的优化目标就变成以下形式
(1)
式中函数表示数据点低维空间坐标映射到高维空间坐标的过程,这样就可以构建分类超平面实现分类了,不过在对数据点类别预测时,需要先将原先二维空间中的坐标映射到新的5维空间中,然后再分类。
2.核函数
将数据从当前维度空间映射到更高维的空间中确实是可以实现数据非线性分布到线性分布的转变,上面举的例子中是二维空间到五维空间的映射,现在再考虑一下三维空间中的数据如何映射到高维空间中实现线性化转变,三维空间中任意曲面的方程为:
按照前面的思路,我们需要将数据映射到19维空间中,这样才能保证数据分布一定能线性化。这里可以看到,维度的增长已经很明显了,如果我们的训练数据是100维、1000维的呢?按照这种映射方式,将会得到想象不到的维度爆炸问题,甚至无法映射。在公式(1)中,需要先将低维度空间中的数据映射到高维度空间中,然后再计算坐标的内积,这在维度爆炸的情况下会耗费大量的计算时间,因此将数据映射到更高维度空间、实现线性化的做法并不是一个可取的方法。
那怎么办呢?还是以2维空间到5维空间的映射过程为例,设2维空间中有两个向量,,则其映射后的内积为
(2)
然后我们找一个函数,使向量、输入后的结果与公式(2)相等,找来找去,发现找不到。。。尴尬了,但是找到了这样一个函数
输入、后,输出结果为
(3)
尽管公式(3)与公式(2)结果不同,但是很相近啊,只不过多了一个常数项,而且部分项的参数不同,那我们就用代替,放入到公式(1)中计算,计算的结果当然不是理想情况下的最优分类超平面了,但是和之前低维到高维映射的做法相比,这样做有一个极大的好处:省去了映射时每个轴坐标值的计算过程,节省了高维空间中内积的计算过程。在数据维度较大的情况下,和丢失一些分类准确性相比(当然,准确性丢失太多肯定是不行的,就看能否在你的接受范围内了),大大节省了建模的计算时间更可取。
好了,现在我们正式定义以下核函数:函数表示坐标从低维空间到高维空间的映射,如果存在一个函数满足
那么就称为核函数,核函数的作用上面也说了,和函数一样,都是为了简化计算过程,尽管得到的SVM可能不是理论上的最优结果。
3.常用的核函数
核函数固然作用大,但不是那么好找的,好在很多牛人帮我们找到了一些核函数,常用的有以下几个:
- 线性核函数
- 多项式核函数
其中参数、、均是可调的
- 高斯核函数,在SVM中也称为径向基核函数(Radial Basis Function,RBF),它是非线性分类SVM最主流的核函数。libsvm默认的核函数就是它
其中,参数,是可调的
4.小结
支持向量机系列讲到这里为止,主要的内容已经讲完了,包括如何将寻找最优分类超平面问题转化为凸优化问题,继而去求解凸优化问题,也讲到了不完全线性可分情况、非线性情况下寻找最优分类间隔问题与完全线性可分情况下寻找最优分类超平面间的联系,最终我们可以得到这样一个观点:不管训练数据分布如何,我们可以直接用非线性方法处理,选定一个核函数,求解分类间隔,在测试集上观察测试结果,然后调整核函数的参数,知道找到一组能满足分类准确率的参数。
唯一还遗留的一点内容是公式(1)中优化问题的快速搜索方法,这个我们在下一篇中说明。
分类:支持向量机(四)——非线性支持向量机相关推荐
- 支持向量机(四)——非线性支持向量机
前面介绍的支持向量机都是在数据线性可分条件下的,但我们拿到训练数据时,并不一定能知道数据是否线性可分,低维数据可以通过可视化的方式观察是否线性可分,而高维数据则很难判断其是否线性可分了.对线性不可分数 ...
- 线性支持向量机、线性可分支持向量机、非线性支持向量机是怎么区分的?
SVM(Support Vector Machine)是一种二类分类模型. 它的基本模型是定义在特征空间上的间隔最大的线性分类器. 支持向量就是最大间隔或者分割超平面上的那几个临界点,具体入下图所示: ...
- 线性可分支持向量机、线性支持向量机、非线性支持向量机的区别
线性可分支持向量机: 线性可分支持向量机处理的是严格线性可分的数据集. 其分类超平面为: 相应的决策函数为:或者 其学习的优化问题为: 线性支持向量机: 线性支持向量机处理的是线性不可分的数据集.对于 ...
- 支持向量机(SVM):超平面及最大间隔化、支持向量机的数学模型、软间隔与硬间隔、线性可分支持向量机、线性支持向量机、非线性支持向量机、核函数、核函数选择、SMO算法、SVM vs LR、优缺点
支持向量机(SVM):超平面及最大间隔化.支持向量机的数学模型.软间隔与硬间隔.线性可分支持向量机.线性支持向量机.非线性支持向量机.核函数.核函数选择.SMO算法.SVM vs LR.优缺点 目录
- 机器学习(7)——支持向量机(二):线性可分支持向量机到非线性支持向量机
线性可分支持向量机 回顾 前面总结了线性可分支持向量机,知道了支持向量机的最终目的就是通过"间隔最大化" 得到最优分类器,能够使最难区分的样本点得到最大的分类确信度,而这些难区分的 ...
- 支持向量机原理_支持向量机
支持向量机原理 Python数据科学 (Python Data Science) The support vector machines (SVM) algorithm has application ...
- 机器学习算法系列(十六)-非线性支持向量机算法(Non-Linear Support Vector Machine)
阅读本文需要的背景知识点:线性支持向量机.一丢丢编程知识 一.引言 前面我们用两节介绍了两种支持向量机模型--硬间隔支持向量机.软间隔支持向量机,这两种模型可以统称为线性支持向量机,下面来介绍另一 ...
- 统计学习方法笔记(六)-非线性支持向量机原理及python实现
非线性支持向量机 非线性支持向量机 定义 非线性支持向量机 算法 非线性支持向量机学习算法 代码案例 TensorFlow 案例地址 非线性支持向量机 定义 非线性支持向量机 从非线性分类训练集,通过 ...
- 支持向量机(SVM)原理小结(2)非线性支持向量机
支持向量机(SVM)原理小结(2)非线性支持向量机 1. 非线性支持向量机 1.1 图示举例 1.2 核技巧 1.3 核技巧在支持向量机中的应用 1.4 常用核函数 1.5 学习算法 1.6 联想:多 ...
最新文章
- qDebug 的用法
- tf.keras.layers.MaxPool2D 最大池化层 示例
- 搜索引擎:文本分类——TF/IDF算法
- python写游戏脚本-python实现简单贪吃蛇游戏
- setlocal启动批处理文件中环境变量的本地化
- java equals 区别_Java中equals和==的区别
- 优胜劣汰有利于整个团购行业服务的提升
- 船舶定位实时查询系统_真趣:IDC机房人员定位系统,位置实时监测,巡检路线智能规划...
- Java左上到右下,java – 如何从上到下然后从左到右填充Gri...
- Win03+IIS6 部署.NetFramework4(ASP.NET4)的一点小经验
- 数据恢复软件分享(第二篇)
- c语言实现 字符串替换函数,C语言函数实现 字符串替换
- fw300r虚拟服务器设置,迅捷(fast)fw300r路由器用手机怎么设置? | 192路由网
- 在国内怎么使用谷歌Chrome浏览器,为什么我的谷歌浏览器进去就加载失败
- 简单教程-word2vec处理英文语料
- 关于PHPExcel导出单元格换行的问题
- 程序员的自我修养-读后感
- 1.2 二维三维空间向量组的线性组合
- 体验新一代Windows CE: Windows Embedded Compact 7
- 2021高台一中高考成绩查询,2021年高考数学(理)一轮复习题型归纳与训练 专题1.3 简单的逻辑联结词、全称量词与存在量词(学生版).docx...
热门文章
- 如果看完这个,你没有热血沸腾的感觉,你就不要进csdn了
- 郭天祥写的《我的大学》
- 对自己的大学期望与目标
- 从百度识图效果对智能识图的一些思考
- Windows10记一次去掉桌面图标箭头引发的血案:该文件没有与之关联的应用来执行操作,请安装一个程序,若已安装程序,请在默认程序控制面板中创建关联。
- 循环中的continue与break语句
- 无法连接到internet 小黄叹号长时间不消失的问题
- QString与QByteArray互转
- 远程连接阿里云服务器一直显示连接失败原因
- mysql error 1837_MySQL复制错误1837的相关缺陷一例——insert delay在GTID下异常binlog格式...