引言

在机器学习2 线性模型中,我们顺便讲过多项式回归来解决数据不是简单直线的问题。这就用到了数据的转换。本节以分类任务对原理进行详细的介绍

非线性数据

对于这样的非线性数据:

非线性数据神经网络分析 非线性数据处理_非线性数据神经网络分析

我们直接使用线性模型,很难很好的分类。

是不是可以这样找一个圈圈来拟合数据。:

非线性数据神经网络分析 非线性数据处理_多项式_02

假如这个圈圈的假设函数为:

非线性数据神经网络分析 非线性数据处理_线性模型_03

写成下面这种形式:

非线性数据神经网络分析 非线性数据处理_非线性数据神经网络分析_04

咦,看着是不是很熟悉?我们之前介绍的线性模型。

实际上,它将特征为(x0,x2,x3)的数据集,转换成特征为(z0,z1,z2)的数据集,在z空间上数据就变得可分了。

非线性数据神经网络分析 非线性数据处理_线性模型_05

 如果数据集在x空间可以通过不论是圈圈还是双曲线或是椭圆划分,都能映射在z空间使其可以线性可分。

例如:

非线性数据神经网络分析 非线性数据处理_非线性数据神经网络分析_06

 在z空间可以写成线性形式:

非线性数据神经网络分析 非线性数据处理_多项式_07

所以,我们接下来要做到只有两步,将非线性数据映射到某空间使其线性可分。再利用之前学习的线性模型从中选出一个最好的。

但做什么事都有代价的。非线性数据转换的多项式阶数变高,特征间的组合会爆炸,多出很多自由度,计算复杂度也会变高。

非线性数据神经网络分析 非线性数据处理_数据_08

自由度越高,模型复杂度越高,在训练集中误差会越来越小,而在测试集则会先降低后上升,而我们的目标是寻找在测试集最小的误差。当选择一个高的多项式阶数时,在训练集表现会很好,但在测试集表现会很差,这就是过拟合(当多项式模型阶数变高时,就会表现出更多特征间的关系,这些关系被模型学到,而在测试集这些关系不一定成立)这时就需要施加惩罚项,像我们之前介绍的岭回归,Lasso回归。所以选择合适的多项式阶数是进行映射的关键。

小结

本节我们介绍了非线性数据的转换来训练模型,又引出一个问题,当我们的模型复杂度变高时,会过拟合。下节将介绍为什么产生过拟合以及如何缓解?