5.多项式回归与模型泛化
(一)什么是多项式回归 还记得线性回归法吗?线性回归法有一个很大的局限性,那就是需要数据是有一定的线性关系的,但是现实中的很多数据是没有线性关系的。多项式就是用来解决这个问题的,可以处理非线性数据 在线性回归中,我们是假设数据具有线性关系的,因此我们在简单线性回归中,将直线的方向设置为y=ax+b的形式,那么我们求出a和b即可。 而对于有些数据,我们虽然也可以使用线性回归,但是显然具有更加强的非线性的关系,换句话说,如果我们用一个二次曲线来拟合这些点,效果会更好。因此函数就变成了了y=ax^2+bx+c,我们求出a、b、c即可。但是本质上,和线性回归一样,目前都是只有一个特征,只不过我们为样本多添加了一些特征,这些特征是原来的多项式项。求出了对原来的特征而言,一个非线性的曲线。 生成数据集 import numpy as np import matplotlib.pyplot as plt # 生成一百个样本,每个样本只有一个特征 X = np.random.uniform(-3, 3, size=(100, 1)) y = 0.5 * X ** 2 + X + 2 + np.random.normal(0, 1, size=(100,1)) plt.scatter(X, y) plt.show() 可以看到数据大概满足一条二次曲线,但是我们使用线性回归法来拟合一下 from