多项式回归代码及相关代码解释

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()

附上图片
多项式回归代码及相关代码解释_第1张图片

你可能感兴趣的:(机器学习)