目录
  1. 1. 实验内容说明:
  2. 2. 编程构思
  3. 3. 二阶多项式拟合实现
  4. 4. 编程注意点:
PolynomialFeatures验证欠拟合和过拟合案例

实验内容说明:

验证在不同多项式阶数的函数的拟合情况

f = k*x + b   一次函数
f = a*x^2 + b*x + w 二次函数
f = a*x^3 + b*x^2 + c*x + w 三次函数

根据蛋糕的直径大小 预测蛋糕价格:

  • 蛋糕的直径:x_train = [[6], [8], [10], [14], [18]]
  • 蛋糕的价格:y_train = [[7], [9], [13], [17.5], [18]]

编程构思

  • 统一用线性模型拟合出系数 sklearn.linear_model.LinearRegression()
  • 注:线性回归模型,只要系数是常数都可以称为线性回归
  • 故,需要将正常的 x_train = [1,x1][1, x_1] 数据映射到对应 [1,x1,x12][1, x_1,x_1^2]域中
    • poly = PolynomialFeatures(degree=2) : 这只是多项式特征生成器
    • x_train_new = poly.fit_transform(x_train)
    • 直接用映射后的 x_train 去进行模型训练即可。

二阶多项式拟合实现

编程注意点:

  1. 软入数据的大小为 n_sample×\times n_feature

    xx = np.linspace(0,25,100)
    xx = xx.reshape(xx.shape[0],1)
  2. 对于拟合数据与预测数据,需要大小一致。即 x_train 与 x_plot 的维度大小应该一致

    reg = LinearRegression()
    reg.fit(x_train,y_train)
    y_plot = reg.predict(x_plot)