Python----多项式回归
多项式线性回归
1、多项式线性方程:
与多元线性回归相比,它只有一个自变量,但有不同次方数。
2、举例:
import numpy as np import matplotlib.pyplot as plt import pandas as pd dataset = pd.read_csv('data.csv') #包含自变量的格式应该是矩阵,不然很可能有错误信息 X = dataset.iloc[:, 1:2].values y = dataset.iloc[:, 2].values #创建线性回归模型 from sklearn.linear_model import LinearRegression lin_reg = LinearRegression()#lin_reg线性回归 lin_reg.fit(X, y) #创建多项式回归 from sklearn.preprocessing import PolynomialFeatures #PolynomialFeatures将自变量转换成包含了自变量不同次数的矩阵 poly_reg = PolynomialFeatures(degree = 4)#degree :转化的包含了不同多项式的最高次数为多少,默认为2,则代表默认最高为2 X_poly = poly_reg.fit_transform(X) lin_reg_2 = LinearRegression()#lin_reg_2多项式回归 lin_reg_2.fit(X_poly, y) #线性回归 plt.scatter(X, y, color = 'red')#实际结果点标红 plt.plot(X, lin_reg.predict(X), color = 'blue')#预测结果线为蓝色 plt.title('Truth or Bluff (Linear Regression)') plt.xlabel('Position Level') plt.ylabel('Salary') plt.show() #实际情况与预测结果相差很大 #多项式回归模型 #线条更加平滑 X_grid=np.arange(min(X),max(X),0.1)#start :从哪个值开始;stop :到哪个数为止;step :每个点数之间间距为多少 X_grid=X_grid.reshape(len(X_grid),1)#转化为矩阵 plt.scatter(X, y, color = 'red') plt.plot(X_grid, lin_reg_2.predict(poly_reg.fit_transform(X_grid)), color = 'blue') plt.title('Truth or Bluff (Polynomial Regression)') plt.xlabel('Position Level') plt.ylabel('Salary') plt.show() #lin_reg已经拟合好的线性回归模型,predict预测,括号中为数据 lin_reg.predict(6.5) lin_reg_2.predict(poly_reg.fit_transform(6.5))