支持向量机(四) |
您所在的位置:网站首页 › 支持向量机难不难 › 支持向量机(四) |
前面介绍的支持向量机都是在数据线性可分条件下的,但我们拿到训练数据时,并不一定能知道数据是否线性可分,低维数据可以通过可视化的方式观察是否线性可分,而高维数据则很难判断其是否线性可分了。对线性不可分数据强行构建线性支持向量机分类可能会导致很差的分类效果,本篇博文就介绍一下如何在数据线性不可分条件下构建非线性支持向量机。 1.非线性情况在二维空间中,考虑如下一组数据 无论如何都找不到一条直线将两组数据(红色和蓝色的点)合理的分隔开,但是图中红色的圆能将这两组数据完美的分隔开,那按照线性SVM中最优分类超平面的思路,我们能不能找到一个最优的分类圆呢?在这个例子中我相信是可以的(尽管我没实践过),但一般情况下很难决定用什么几何特征来实现数据的分隔,一方面是因为无法有效的可视化这些数据,另一方面是因为在高维空间中很难定义几个几何图形,那这种情况下该怎么考虑?我们能不能将非线性特征转化为线性特征呢?答案是可以的,做法就是建立一个新的维度空间,并且定义新的坐标值,还是以圆为例,在二维空间中,圆的方程式为 我们建立一个新的5维空间,将该5维空间中每个坐标轴定义如下: 那么在这个新的5维空间中,圆的方程为: 这样,就成了超平面方程了。同样的,将原先的数据的坐标 式中 将数据从当前维度空间映射到更高维的空间中确实是可以实现数据非线性分布到线性分布的转变,上面举的例子中是二维空间到五维空间的映射,现在再考虑一下三维空间中的数据如何映射到高维空间中实现线性化转变,三维空间中任意曲面的方程为: 按照前面的思路,我们需要将数据映射到19维空间中,这样才能保证数据分布一定能线性化。这里可以看到,维度的增长已经很明显了,如果我们的训练数据是100维、1000维的呢?按照这种映射方式,将会得到想象不到的维度爆炸问题,甚至无法映射。在公式(1)中,需要先将低维度空间中的数据映射到高维度空间中,然后再计算坐标的内积,这在维度爆炸的情况下会耗费大量的计算时间,因此将数据映射到更高维度空间、实现线性化的做法并不是一个可取的方法。 那怎么办呢?还是以2维空间到5维空间的映射过程为例,设2维空间中有两个向量 然后我们找一个函数,使向量 输入 尽管公式(3)与公式(2)结果不同,但是很相近啊,只不过多了一个常数项,而且部分项的参数不同,那我们就用 好了,现在我们正式定义以下核函数:函数 那么就称 核函数固然作用大,但不是那么好找的,好在很多牛人帮我们找到了一些核函数,常用的有以下几个: 线性核函数 其中参数 其中,参数 支持向量机系列讲到这里为止,主要的内容已经讲完了,包括如何将寻找最优分类超平面问题转化为凸优化问题,继而去求解凸优化问题,也讲到了不完全线性可分情况、非线性情况下寻找最优分类间隔问题与完全线性可分情况下寻找最优分类超平面间的联系,最终我们可以得到这样一个观点:不管训练数据分布如何,我们可以直接用非线性方法处理,选定一个核函数,求解分类间隔,在测试集上观察测试结果,然后调整核函数的参数,知道找到一组能满足分类准确率的参数。 唯一还遗留的一点内容是公式(1)中优化问题的快速搜索方法,这个我们在下一篇中说明。
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |