当前位置:   article > 正文

机器学习:一元线性回归模型

机器学习:一元线性回归模型

目录

前言

一、讲在前面

1.data.csv:

2.完整代码:

3.运行结果:

二、实现步骤

1.导入库

2.导入数据

3.绘制散点图(这步可以省略)

4.求特征和标签的相关系数

5.建立并训练线性回归模型

6.检验模型

7.获取线性回归模型方程

8.利用模型进行预测

总结


前言

        线性回归是一种基本的回归分析方法,用于建模两个或多个变量之间的关系。其主要目标是通过一条直线(在简单线性回归中)或一个超平面(在多元线性回归中)来预测一个目标变量的值。

 

一、讲在前面

1.data.csv:

data.csv

 

2.完整代码:

  1. # 一元线性回归
  2. import pandas as pd
  3. from matplotlib import pyplot as plt
  4. from sklearn.linear_model import LinearRegression
  5. data = pd.read_csv('data.csv')
  6. # 绘制散点图
  7. plt.scatter(data['广告投入'], data['销售额'])
  8. # plt.show()
  9. corr = data.corr() # 求x和y的相关系数
  10. # 估计模型参数,建立回归模型
  11. lr = LinearRegression() # 建立模型
  12. x = data[['广告投入']] # 特征数据
  13. y = data[['销售额']] # 结果数据
  14. lr.fit(x, y) # 训练模型 需要传入二维数据
  15. # 对回归模型进行检验
  16. result = lr.predict(x)
  17. score = lr.score(x, y) # 判断拟合优度 R方 [0,1] 越高越拟合
  18. # print(result)
  19. print(score)
  20. b = round(lr.intercept_[0], 2) # 查看截距 round()四舍五入至小数点后两位
  21. k = round(lr.coef_[0][0], 2) # 查看斜率
  22. print(f"线性回归模型为: y = {k}x + {b}")
  23. predict = lr.predict([[21], [23], [99]]) # 使用新数据进行预测
  24. print(predict)

 

3.运行结果:

 

 

二、实现步骤

1.导入库

  1. # 一元线性回归
  2. import pandas as pd
  3. from matplotlib import pyplot as plt
  4. from sklearn.linear_model import LinearRegression

 

2.导入数据

data = pd.read_csv('data.csv')

 

3.绘制散点图(这步可以省略)

代码:

  1. # 绘制散点图
  2. plt.scatter(data['广告投入'], data['销售额'])
  3. plt.show()

输出:

 

4.求特征和标签的相关系数

  1. 相关系数在线性回归模型里是一个重要指标!
  2. 主要用于度量两个连续变量之间的线性关系
  3. 相关程度越弱,说明特征数据越差
  • 计算方法:
  • 各段数值解释

代码:

  1. # 求x和y的相关系数
  2. corr = data.corr()

输出:

 

5.建立并训练线性回归模型

  • 提取特征数据和标签也在这个步骤一并完成了
  1. # 估计模型参数,建立回归模型
  2. lr = LinearRegression() # 建立模型
  3. x = data[['广告投入']] # 特征数据
  4. y = data[['销售额']] # 结果数据
  5. lr.fit(x, y) # 训练模型 需要传入二维数据

 

6.检验模型

拟合优度是判断模型好坏的一个指标

代码:

  1. # 对回归模型进行检验
  2. result = lr.predict(x)
  3. score = lr.score(x, y) # 判断拟合优度 R方 [0,1] 越高越拟合
  4. # print(result)
  5. print(score)

输出:

0.8225092881166945

 

7.获取线性回归模型方程

代码:

  1. # 获取线性回归模型方程
  2. b = round(lr.intercept_[0], 2) # 查看截距 round()四舍五入至小数点后两位
  3. k = round(lr.coef_[0][0], 2) # 查看斜率
  4. print(f"线性回归模型为: y = {k}x + {b}")

输出:

线性回归模型为: y = 3.74x + -36.36

 

8.利用模型进行预测

  • 给定x值,预测y值

代码:

  1. predict = lr.predict([[21], [23], [99]]) # 使用新数据进行预测
  2. print(predict)

输出:

  1. [[ 42.13436123]
  2. [ 49.61013216]
  3. [333.68942731]]

 

总结

        其实具体的步骤与之前的KNN算法差不多,这里多了一步求相关系数

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/1019832
推荐阅读
相关标签
  

闽ICP备14008679号