第二章.线性回归以及非线性回归—多项式回归

第二章.线性回归以及非线性回归

2.7 多项式回归

1.举例:

1).特征数不同对应的曲线不同

第二章.线性回归以及非线性回归—多项式回归_第1张图片

2).假设我们不是找值(或者超平面),而是需要找到一个用多项式所表示的曲线(或者超平面),例如二次曲线:y=at^2+bt+c

第二章.线性回归以及非线性回归—多项式回归_第2张图片

  • 回归曲线可以写成下面这种形式:在这里插入图片描述

2.实战: sklearn—多项式回归

1).CSV中的数据:

第二章.线性回归以及非线性回归—多项式回归_第3张图片

2).代码

import numpy as np
import matplotlib.pyplot as plt
from sklearn import linear_model
from sklearn.preprocessing import PolynomialFeatures

# 载入数据
data = np.genfromtxt('D:\\data\\job.csv', delimiter=',')

# 切分数据
x_data = data[1:, 1]
y_data = data[1:, 2]

# 增加新的维度
x_data = x_data[:, np.newaxis]
y_data = y_data[:, np.newaxis]

# 定义多项式回归,degree参数可以调节多项式的特征值
poly_reg = PolynomialFeatures(degree=3)  # 原始特征变成多特征

# 特征处理
x_poly = poly_reg.fit_transform(x_data)

# 定义回归模型
lin_reg = linear_model.LinearRegression()

# 拟合模型
lin_reg.fit(x_poly, y_data)

# 回归系数
coeff = lin_reg.coef_
print('回归系数:', coeff)

# 截距
intercept = lin_reg.intercept_
print('截距:',intercept)


# 画图
plt.plot(x_data, y_data, 'b.')
plt.plot(x_data, lin_reg.predict(x_poly), 'r')
plt.title('Polynomial Regression')
plt.xlabel('Position level')
plt.ylabel('Salary')
plt.show()


3).结果展示:

①.数据

在这里插入图片描述

②.图像
第二章.线性回归以及非线性回归—多项式回归_第4张图片

你可能感兴趣的:(回归,线性回归,python)