多项式回归(Polynomial Regression)是研究一个因变量与一个或多个自变量间多项式的回归分析方法。如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。
一元m次多项式回归方程
二元二次多项式回归方程
在一元回归分析中,如果依变量y与自变量X的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。
多项式回归的最大优点就是可以通过增加X的高次项对实测点进行逼近,直至满意为止。
事实上,多项式回归可以处理相当一类非线性问题,它在回归分析中占有重要的地位,因为任一函数都可以分段用多项式来逼近。
线性回归实例中,是运用直线来拟合数据输入与输出之间的线性关系。
不同于线性回归,多项式回归是使用曲线拟合数据的输人与输出的映射关系。
应用背景:根据已知的房屋成交价和房屋的尺寸进行了线性回归,继而可以对已知房屋尺寸,而未知房屋成交价格的实例进行了成交价格的预测,但是在实际的应用中这样的拟合往往不够好,因此我们在此对该数据集进行多项式回归。
目标:对房屋成交信息建立多项式回归方程,并依据回归方程对房屋价格进行预测。
技术路线:sklearn.preprocessing.PolynomialFeatures
实例数据:成交信息包括房屋的面积以及对应的成交价格
使用算法:线性回归
实现步骤:
1、建立工程并导人sklearn包
import matplotlib.pyplot as plt import numpy as np from sklearn import linear_model from sklearn.preprocessing import PolynomialFeatures
2、加载训练数据,建立回归方程。
3.可视化处理
import matplotlib.pyplot as plt import numpy as np from sklearn import linear_model from sklearn.preprocessing import PolynomialFeatures # 读取数据集 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[0])) datasets_Y.append(int(items[1])) datasets_X = np.array(datasets_X).reshape([-1, 1]) datasets_Y = np.array(datasets_Y) minX = min(datasets_X) maxX = max(datasets_X) X = np.arange(minX, maxX).reshape([-1, 1]) poly_reg = PolynomialFeatures(degree=2) X_poly = poly_reg.fit_transform(datasets_X) # 使用线性模型学习X_poly和datasets_Y之间的映射关系(即参数) lin_reg_2 = linear_model.LinearRegression() lin_reg_2.fit(X_poly, datasets_Y) # 图像中显示 plt.scatter(datasets_X, datasets_Y, color='red', label='origin data') plt.plot(X, lin_reg_2.predict(poly_reg.fit_transform(X)), color='blue', label='Polynomial regression prediction') plt.legend() # 使label生效 plt.xlabel('Area') plt.ylabel('Price') plt.show()
通过多项式回归拟合的曲线与数据点的关系如下图所示。依据该多项式回归方程即可通过房屋的尺寸,来预测房屋的成交价格。
线性回归和多项式回归,都是回归的一种方法。
个人观点:
今天早上骑车被撞了,摔了一跤,手摔破了麻了痛死了,平板也摔折了,不过还能用。
还好脸没事