第二章.线性回归以及非线性回归
y=at^2+bt+c
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()
①.数据