多项式回归
如果数据比简单的线性更加复杂,我们也可以用线性模型来拟合,只需要给每个特征添加一个新特征,然后用扩展后的新特征来训练。
import numpy as np
import numpy.random as rnd
np.random.seed(42)
m = 100
X = 6 * np.random.rand(m, 1) - 3
y = 0.5 * X**2 + X + 2 + np.random.randn(m, 1)#设置方程
plt.plot(X, y, "b.")
plt.xlabel("$x_1$", fontsize=18)
plt.ylabel("$y$", rotation=0, fontsize=18)
plt.title("带噪声的非线性数据")
plt.axis([-3, 3, 0, 10])
plt.show()
from sklearn.preprocessing import PolynomialFeatures#多项式进行处理
poly_features = PolynomialFeatures(degree=2, include_bias=False)#加入2阶处理
X_poly = poly_features.fit_transform(X)
X[0]
array([-0.75275929])
X_poly[0]
array([-0.75275929,