前面介绍的支持向量机都是在数据线性可分条件下的,但我们拿到训练数据时,并不一定能知道数据是否线性可分,低维数据可以通过可视化的方式观察是否线性可分,而高维数据则很难判断其是否线性可分了。对线性不可分数据强行构建线性支持向量机分类可能会导致很差的分类效果,本篇博文就介绍一下如何在数据线性不可分条件下构建非线性支持向量机。
1.非线性情况
在二维空间中,考虑如下一组数据
无论如何都找不到一条直线将两组数据(红色和蓝色的点)合理的分隔开,但是图中红色的圆能将这两组数据完美的分隔开,那按照线性SVM中最优分类超平面的思路,我们能不能找到一个最优的分类圆呢?在这个例子中我相信是可以的(尽管我没实践过),但一般情况下很难决定用什么几何特征来实现数据的分隔,一方面是因为无法有效的可视化这些数据,另一方面是因为在高维空间中很难定义几个几何图形,那这种情况下该怎么考虑?我们能不能将非线性特征转化为线性特征呢?答案是可以的,做法就是建立一个新的维度空间,并且定义新的坐标值,还是以圆为例,在二维空间中,圆的方程式为
我们建立一个新的5维空间,将该5维空间中每个坐标轴定义如下:
那么在这个新的5维空间中,圆的方程为: