实验内容说明:
验证在不同多项式阶数的函数的拟合情况
f = k*x + b 一次函数 |
根据蛋糕的直径大小 预测蛋糕价格:
- 蛋糕的直径:x_train = [[6], [8], [10], [14], [18]]
- 蛋糕的价格:y_train = [[7], [9], [13], [17.5], [18]]
编程构思
- 统一用线性模型拟合出系数 sklearn.linear_model.LinearRegression()
- 注:线性回归模型,只要系数是常数都可以称为线性回归
- 故,需要将正常的 x_train = 数据映射到对应 域中
- poly = PolynomialFeatures(degree=2) : 这只是多项式特征生成器
- x_train_new = poly.fit_transform(x_train)
- 直接用映射后的 x_train 去进行模型训练即可。
二阶多项式拟合实现
编程注意点:
-
软入数据的大小为 n_sample n_feature
xx = np.linspace(0,25,100)
xx = xx.reshape(xx.shape[0],1) -
对于拟合数据与预测数据,需要大小一致。即 x_train 与 x_plot 的维度大小应该一致
reg = LinearRegression()
reg.fit(x_train,y_train)
y_plot = reg.predict(x_plot)