单因子线性回归

一:LR实现线性预测

任务:

  1. 基于data.csv数据,建立线性回归模型。
  2. 预测 x=3.5 对应的 y 值。
  3. 评估模型表现。

二:实现流程

  1. 建立线性回归模型
    1. 导入数据,查看数据
    2. 数据赋值,查看数据类型
    3. 可视化数据
    4. 建立 Linear Regression 模型
    5. 根据需求重塑数据
    6. 模型训练
  2. 数据预测
    1. 查看预测结果
    2. 对指定值进行预测
  3. 评估模型表现
    1. 通过 Excel 获取数据关系
    2. 计算MSE值,进行评估
    3. 计算R2值,进行评估
    4. 可视化展示预测值与期望值关系

三:代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# 第一步:导入数据,查看数据
import pandas as pd
data = pd.read_csv("data.csv")
data.head()

# 第二步:数据赋值
x = data.loc[:,'x']
y = data.loc[:,'y']
print(x,y)

# 查看数据类型
print(type(x),x.shape)
print(type(y),y.shape)

# 第三步:可视化数据
from matplotlib import pyplot as plt
plt.figure(figsize=(2,2)) # 设置图形大小
plt.scatter(x,y) # 绘制散点图
plt.show()

# 第四步:建立 Linear Regression 模型
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)
print(type(x),x.shape)
print(type(y),y.shape)

lr_model.fit(x,y) # 模型训练

# 第五步:预测数据
y_predict = lr_model.predict(x)
print(y_predict)

# 第六步:评估模型表现
a = lr_model.coef_
b = lr_model.intercept_
print(a,b)

# 通过 excel 获取,y = 2x
# 通过 MSE 和 R2 进行评估
from sklearn.metrics import mean_squared_error,r2_score
MSE = mean_squared_error(y,y_predict)
R2 = r2_score(y,y_predict)
print(MSE,R2)

# 展示
plt.figure()
plt.plot(y,y_predict)
plt.show()

四:模型评估

Excel 结果

MSE 与 R2结果