无论之前的软间隔还是硬间隔模型,都是针对SVM线性可分模型而言的。
软间隔模型和硬间隔模型的损失函数一样,只是多了两个条件。
软间隔并没有真正解决线性不可分的问题,只是防止模型过拟合,忽略了异常值罢了。
05 SVM - 支持向量机 - 概念、线性可分
06 SVM - 线性可分SVM算法和案例
07 SVM - 软间隔模型
08 SVM - 软间隔模型算法流程
九、线性不可分问题的思路
不管是线性可分SVM还是加入惩罚系数后的软间隔线性可分SVM,其实都要求数据本身是线性可分的。
对于完全不可以线性可分的数据,这两种算法模型就没法解决这个问题了。如下图:在二维平面上,我们无法找到一条直线完美分割叉叉和圈圈。
但是我们可以将二维的数据映射到三维的空间中,如右图所示。通过在三维空间中寻找一个曲面,在更高的维度上解决低维度无法直接线性分割的问题。
多项式回归的回顾
在线性回归中,我们可以通过多项式扩展将低维度的数据扩展成为高维度的数据,从而可以使用线性回归模型来解决问题。也就是说对于二维空间中不是线性可分的数据,将其映射到高维空间中后,变成了线性可分的数据。
结合多项式回归在处理非线性可分数据时候的作用,在SVM的线性不可分的数据上,如果将数据映射到高维空间中,那么数据就会变成线性可分的,从而就可以使用线性可分SVM模型或者软间隔线性可分SVM模型。
也就是说,对于线性不可分SVM模型来讲,重点在于低维特征数据到高维特征数据之间的映射。
十、线性不可分SVM
定义一个从低维特征空间到高维特征空间的映射函数Ф,非线性可分SVM的优化目标函数:
可以看到的是,只需要将原来的低维空间中的两个向量的点积转换为高维空间中两个向量的点积即可。
看似很美好,但问题来了...
这样一来问题就解决了吗?似乎是的:拿到非线性数据,就找一个映射,然后一股脑把原来的数据映射到新空间中,再做线性 SVM 即可。不过事实上没有这么简单!
其实刚才的方法稍想一下就会发现有问题:在最初的例子里做了一个二阶多项式的转换,对一个二维空间做映射,选择的新空间是原始空间的所有一阶和二阶的组合,得到了5个维度;
如果原始空间是三维,那么我们会得到9维的新空间;如果原始空间是n维,那么我们会得到一个n(n+3)/2维的新空间;这个数目是呈爆炸性增长的,这给计算带来了非常大的困难,而且如果遇到无穷维的情况,就根本无从计算。
下一章,我们将用核函数来解决这个问题。
10 SVM - 核函数