多项式回归,回归函数是回归变量多项式的回归。多项式回归模型是线性回归模型的一种,此时回归函数关于回归系数是线性的。由于任一函数都可以用多项式逼近,因此多项式回归有着广泛应用。
直线回归研究的是一个因变量与一个自变量之间的回归问题,但是,在畜禽、水产科学领域的许多实际问题中,影响因变量的自变量往往不止一个,而是多个,比如绵羊的产毛量这一变量同时受到绵羊体重、胸围、体长等多个变量的影响,因此需要进行一个因变量与多个自变量间的回归分析,即多元回归分析。
研究一个因变量与一个或多个自变量间多项式的回归分析方法,称为多项式回归(Polynomial Regression)。如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。在一元回归分析中,如果变量y与自变量x的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。
一元m次多项式回归方程为:
。二元二次多项式回归方程为:
。多项式回归的最大优点就是可以通过增加x的高次项对实测点进行逼近,直至满意为止。事实上,多项式回归可以处理相当一类非线性问题,它在回归分析中占有重要的地位,因为任一函数都可以分段用多项式来逼近。因此,在通常的实际问题中,不论依变量与其他自变量的关系如何,我们总可以用多项式回归来进行分析。
多项式回归问题可以通过变量转换化为多元线性回归问题来解决。
对于一元m次多项式回归方程,令
,则就转化为m元线性回归方程 。因此用多元线性函数的回归方法就可解决多项式回归问题。需要指出的是,在多项式回归分析中,检验回归系数
对于二元二次多项式回归方程,令
,则该二元二次多项式函数就转化为五元线性回归方程。但随着自变量个数的增加,多元多项式回归分析的计算量急剧增加。多元多项式回归属于多元非线性回归问题。模型如以下形式的称为一元多项式回归模型:
多项式回归在回归分析中很重要,因为任意一个函数至少在一个较小的范围内都可以用多项式任意逼近,因此在比较复杂的实际问题中,有时不问y与诸元素的确切关系如何,而用回归分析进行分析运算。
比如,对房屋成交信息建立多项式回归方程,并依据回归方程对房屋价格进行预测 。
实例数据:如图1,为了方便展示,成交信息只使用了房屋的面积以及对应的成交价格。
实验过程:使用算法为线性回归
实现步骤:
1、建立工程并导入sklearn包
import matplotlib.pyplot as pltimport numpy as npfrom sklearn import linear_modelfrom sklearn.preprocessing import PolynomialFeatures
2、加载训练数据,建立回归方程
# 读取数据集datasets_X = datasets_Y = fr = open('prices.txt','r')lines = fr.readlines()for line in lines: items = line.strip().split(',') datasets_X.append(int(items)) datasets_Y.append(int(items))length = len(datasets_X)datasets_X = np.array(datasets_X).reshape()datasets_Y = np.array(datasets_Y)minX = min(datasets_X)maxX = max(datasets_X)X = np.arange(minX,maxX).reshape()poly_reg = PolynomialFeatures(degree = 2)X_poly = poly_reg.fit_transform(datasets_X)lin_reg_2 = linear_model.LinearRegression()lin_reg_2.fit(X_poly, datasets_Y)3、可视化处理
# 图像中显示plt.scatter(datasets_X, datasets_Y, color = 'red')plt.plot(X, lin_reg_2.predict(poly_reg.fit_transform(X)), color = 'blue')plt.xlabel('Area')plt.ylabel('Price')plt.show()实验结果:通过多项式回归拟合的曲线与数据点的关系如图2所示。依据该多项式回归方程即可通过房屋的尺寸,来预测房屋的成交价格。