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

devtools/2024/9/24 11:18:04/

目录

前言

一、讲在前面

1.data.csv:

2.完整代码:

3.运行结果:

二、实现步骤

1.导入库

2.导入数据

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

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

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

6.检验模型

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

8.利用模型进行预测

总结


前言

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

 

一、讲在前面

1.data.csv:

data.csv

 

2.完整代码:

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

 

3.运行结果:

 

 

二、实现步骤

1.导入库

python"># 一元线性回归
import pandas as pd
from matplotlib import pyplot as plt
from sklearn.linear_model import LinearRegression

 

2.导入数据

python">data = pd.read_csv('data.csv')

 

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

代码:

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

输出:

 

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

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

代码:

python"># 求x和y的相关系数
corr = data.corr()

输出:

 

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

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

 

6.检验模型

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

代码:

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

输出:

python">0.8225092881166945

 

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

代码:

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

输出:

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

 

8.利用模型进行预测

  • 给定x值,预测y值

代码:

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

输出:

python">[[ 42.13436123][ 49.61013216][333.68942731]]

 

总结

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


http://www.ppmy.cn/devtools/98262.html

相关文章

MATLAB 大场景建筑物点云提取方法实现(75)

MATLAB 大场景建筑物点云提取方法实现(75) 一、算法介绍二、算法实现1.代码2.效果展示总结一、算法介绍 本章手动实现了一种建筑物点云提取方法,可以对室外的大规模场景点云中的建筑物进行有效提取,下面是实现的效果和具体的实现方法,直接复制粘贴代码即可使用, 二、算…

探索AI编程:Wordware与自然语言编程的无限可能

在AI技术日新月异的今天,一款名为Wordware的IDE(集成开发环境)正悄然引领着AI代理构建的新潮流。作为YC(Y Combinator)的当红炸子鸡,Wordware以其独特的自然语言编程理念,为AI开发领域带来了一场前所未有的革命。今天,我们就来深入剖析Wordware的核心优势、市场策略以及…

[ETL趋势」DB表输出支持事务、循环容器次数无限制、实时数据同步目的地StarRocks和Doris支持DDL等

FineDataLink作为一款市场上的顶尖ETL工具,集实时数据同步、ELT/ETL数据处理、数据服务和系统管理于一体的数据集成工具,进行了新的维护迭代。本文把FDL4.1.10最新功能作了介绍,方便大家对比:(产品更新详情&#xff1a…

大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive

点一下关注吧!!!非常感谢!!持续更新!!! 目前已经更新到了: Hadoop(已更完)HDFS(已更完)MapReduce(已更完&am…

JVM性能监控工具

文章目录 JDK的命令行工具jps: 虚拟机进程状况工具jstat:虚拟机统计信息监视工具jinfo:Java配置信息工具jmap:Java内存映像工具jhat:虚拟机堆转储快照分析工具jstack:Java堆栈跟踪工具 可视化工具JConsole启动JConsole…

2024年最新盘点!这18款CRM最值得推荐!

CRM 系统对企业至关重要。它不仅能整合客户信息,助力企业提供个性化服务,提升客户满意度,还能通过销售流程自动化,提高销售效率,实现多渠道沟通整合!可以说,CRM系统是企业走上数字化转型道路上不…

【axios get请求 中文乱码】

问题复现 前端请求: company/queryFenByOrgNo?orgNo5&qcNam%D2%BB%C6%DA qcNam 一期 后端接收: CompanyManagementController - 入参 orgNo“5”,qcNamһ�� 问题解决方案 let httpUrl this.httpcompany/queryFenByOrgNo…

Qt五大核心特性之信号与槽

前言 Qt 引入信号与槽(Signal & Slot)机制的主要原因是为了提供一种灵活、松耦合的方式,使对象之间能够进行安全、方便的通信,尤其在事件驱动的编程环境中(如 GUI 应用)特别有效。 松耦合&#xff1a…