对付非线性可分的数据集的一种通用办法

来源:互联网 发布:佐拉算法说的那些人 编辑:程序博客网 时间:2024/05/29 17:46

假设这个数据集能够被一个非线性的面分开,这个面的表达形式为f(x,y,z)。那么,根据泰勒展开,可以得到f(x,y,z)的多项式表达。那么,就可以把其多项式表达作为一个新的面,将多项式的各个次数的分量组成一个新的向量,就成了线性可分的。这样相当于将数据集做了个变换,将非线性的数据集变换成线性的数据集。

由此可以推出,在一定意义上来说,任何非线性的数据集通过某种变换后,都是线性可分的。

但是,如果经过泰勒展开以后,数据的维度会上升的很快,所以存储和计算速度都会增加很快。同时,因为参数增长的非常快,VC维度也会增加的很快,非常容易发生overfitting 。

因此,一个比较科学的做法是,从线性逼近开始尝试,然后一步步的测试复杂的逼近。

另外一个问题是过拟合的问题。过拟合跟两个东西有关:噪声和数据集大小。如果数据集小、而所选的模型的VC维度太高的话,就会发生过拟合现象。

下图说明了另外一个问题。即使我们的分类器是很高次数的多项式,但是在数据量有限的情况下也会出现过拟合现象。


0 0