机器学习-单因子线性回归
回归分析:根据数据,确定两种或两种以上变量间相互依赖的定量关系。
python实现:
import pandas as pd
data = pd.read_csv('generated_data.csv') # 读数据
data.head()
x = data.loc[:,'x'] # 将文件中的x读入数组
y = data.loc[:,'y']from matplotlib import pyplot as plt
plt.figure(figsize=(5,5)) # 画图
plt.scatter(x,y)
plt.show()# set up linear regression model 建立模型
from sklearn.linear_model import LinearRegression
lr_model = LinearRegression()
import numpy as np
x=np.array(x) # 转维
x=x.reshape(-1,1)
y=np.array(y)
y=y.reshape(-1,1)
lr_model.fit(x,y) # 创建模型# 用模型测试
y_predict=lr_model.predict(x) # 用x跑y
print(y_predict)
y_3=lr_model.predict([[3.5]]) # 用3.5跑对应y
print('y_3=',y_3)# 模型评估
# 打印线性回归模型y=ax+b的a,b
a = lr_model.coef_
b = lr_model.intercept_
print('a=',a)
print('b=',b)from sklearn.metrics import mean_squared_error,r2_score
MSE = mean_squared_error(y,y_predict) # MSE越解决0,越小越好
R2 = r2_score(y,y_predict) # 越接近1,说明拟合得越好
print('MSE=',MSE)
print('R2=',R2)
plt.figure()
plt.plot(y,y_predict) # 拟合y和预测y
plt.show()
generated_data.csv文件内容展示:
输出结果:
数据x和y拟合图像:
y与y_predict拟合图像: