我们先简单看看多项式回归,然后通过学习曲线看一下过拟合的情况。
多项式回归
我们使用二次方程生成一些数据,然后拟合。
X = 6 * np.random.rand(100, 1) - 3
y = 0.5 * X**2 + X + 2 + np.random.rand(100,1)
显然,线性模型很难拟合上述数据,于是我们使用sklearn的PolynomialFeatures类来转换训练数据,将训练集中每个特征的平方(二次多项式)添加为新特征(在这种情况下,只有一个特征):
from sklearn.preprocessing import PolynomialFeatures
poly_feature = PolynomialFeatures(degree=2, include_bias=False)
X_poly = poly_feature.fit_transform(X)
print(X[0], X_poly[0])
[0.20297397] [0.20297397 0.04119843]
使用ScikitLearn的PolynomialFeatures类来转换训练数据,将训练集中每个特征的平方(二次多项式)添加为新特征&#x