from sklearn.preprocessing import PolynomialFeatures
import numpy as np
from sklearn.linear_model import LinearRegression
import matplotlib.pyplot as plt #事实告诉我们没有pyplot,就不可以用plt.show()等等
x = np.array([258,270,294,320,342,368,396,446,480,586])[:,np.newaxis]
y = np.array([236,234,252,298,314,342,360,368,391,390])
lr = LinearRegression()
pr = LinearRegression()
quadratic = PolynomialFeatures(degree=2)
x_quad = quadratic.fit_transform(x)
#为了比较,先拟合一个简单的线性回归模型
lr.fit(x,y)
x_fit = np.arange(250,600,10)[:,np.newaxis] #三个参数的意思是250起点;600终点;10为步长
y_lin_fit = lr.predict(x_fit)
pr.fit(x_quad,y) #使用变换后的下x_quad特征作为多项式回归参数拟合多元回归模型
y_quad_fit = pr.predict(quadratic.fit_transform(x_fit))
#绘制图像
plt.scatter(x,y,label = 'training points')
plt.plot(x_fit,y_lin_fit,label = 'linear fit',linestyle = '--')
plt.plot(x_fit,y_quad_fit,label = 'quadratic fit')
plt.legend(loc = 'upper left')
plt.show()
附上图片