详解 Python 实现线性回归模型:从理论到实践

Python—线性回归 目录 1.简单线性回归模型2.多元线性回归模型2.1 应用F检验法完成模型的显著性检验2.2应用t检验法完成回归系数的显著性检验 3.基于回归模型识别异常点4.含有离散变量的回归模型 前言: 线性回归模型属于经典的统计学模型,该模型的应用场景是根据已知的变量(即自变量)来预测某个连续的数值变量(即因变量)。例如餐厅根据媒体的营业数据(包括菜谱价格、就餐人数、预订人数、特价菜折扣等)预测就餐规模或营业额;网站根据访问的历史数据(包括新用户的注册量、老用户的活跃度、网站内容的更新频率等)预测用户的支 阅读详情

线性回归是机器学习中最基础也最常用的算法之一,它可以用来自变量和因变量之间的线性关系进行建模。本文将通过实际代码示例,详细介绍如何使用 Python 的 scikit-learn 库实现线性回归模型,包括单变量、多变量线性回归的完整流程。

线性回归基本概念

线性回归的核心思想是寻找一条最佳拟合直线(或超平面)来描述自变量和因变量之间的关系。对于单变量线性回归,其数学表达式为:

y = ax + b

其中,a 是斜率(系数),b 是截距。

对于多变量线性回归,表达式扩展为:

y = a₁x₁ + a₂x₂ + ... + aₙxₙ + b

这里的 x₁, x₂, ..., xₙ是多个自变量,a₁, a₂, ..., aₙ是对应的系数,b 是截距。

LinearRegression 类参数解析

在 scikit-learn 库中,LinearRegression 类是实现线性回归的主要工具,它的常用参数包括:

  • fit_intercept:布尔值,是否计算模型的截距。如果为 False,则直线过原点
  • normalize:布尔值,是否将数据归一化
  • copy_X:布尔值,是否对输入数据 X 进行复制。如果为 False,则可能会覆盖原数据
  • n_jobs:整数,计算时使用的任务个数。设置为 - 1 表示使用所有可用的 CPU

LinearRegression 类的主要方法:

  • fit(X, y):对训练数据 X 和 y 进行模型训练
  • predict(X):使用训练好的模型对新数据 X 进行预测
  • score(X, y):返回模型的决定系数 R²,用于评估模型拟合效果

单变量线性回归实践

单变量线性回归研究的是一个自变量与一个因变量之间的关系。下面以 "广告投入与销售额" 的关系为例进行演示:

import pandas as pd
from sklearn.linear_model import LinearRegression

# 读取数据
data = pd.read_csv(r"D:\pythonProject11\class\data(1).csv")

# 定义自变量和因变量
x = data[["广告投入"]]  # 自变量,注意需要二维结构
y = data[["销售额"]]    # 因变量

# 创建并训练模型
lr_model = LinearRegression()
lr_model.fit(x, y)

# 评估模型
score = lr_model.score(x, y)

# 获取模型参数
a = round(lr_model.coef_[0][0], 2)  # 系数
b = round(lr_model.intercept_[0], 2)  # 截距

# 输出结果
print(f"线性回归模型为y = {a}x + {b}")
print(f"模型R²评分:{round(score, 4)}")

代码解析:

  1. 首先导入必要的库,pandas 用于数据处理,LinearRegression 用于构建模型
  2. 使用 pd.read_csv () 读取数据文件
  3. 选择 "广告投入" 作为自变量 x,"销售额" 作为因变量 y
  4. 创建 LinearRegression 模型实例并使用 fit () 方法进行训练
  5. 使用 score () 方法获取模型的 R² 评分,该值越接近 1 表示模型拟合效果越好
  6. 通过 coef_属性获取回归系数,通过 intercept_属性获取截距
  7. 最后输出回归方程和模型评分

多变量线性回归实践

当影响因变量的因素不止一个时,就需要用到多变量线性回归。下面以 "体重、年龄与收缩压" 的关系为例:

import pandas as pd
from sklearn.linear_model import LinearRegression

# 读取数据
data = pd.read_csv(r"D:\pythonProject11\class\多元线性回归.csv", encoding='gbk')

# 定义自变量和因变量
x = data[["体重", "年龄"]]  # 多个自变量
y = data["血压收缩"]        # 因变量

# 创建并训练模型
lr_model = LinearRegression()
lr_model.fit(x, y)

# 评估模型
score = lr_model.score(x, y)

# 获取模型参数
a = lr_model.coef_  # 系数数组,包含两个元素,分别对应体重和年龄
b = lr_model.intercept_  # 截距

# 处理结果,保留两位小数
result_x1 = round(a[0], 2)  # 体重的系数
result_x2 = round(a[1], 2)  # 年龄的系数
result_y = round(b, 2)      # 截距

# 输出结果
print(f"模型R²评分:{score}")
print(f"线性方程为: y = {result_x1}x1 + {result_x2}x2 + {result_y}")

在多变量线性回归中,coef_返回的是一个数组,数组中的每个元素对应一个自变量的系数。上述代码中,result_x1 是体重的系数,result_x2 是年龄的系数,它们表示在其他变量不变的情况下,该变量每变化 1 单位对因变量的影响。

糖尿病数据预测实例

下面我们用一个更复杂的例子来演示线性回归的应用,使用糖尿病数据集中的多个特征来预测目标变量:

python

运行

import pandas as pd
from sklearn.linear_model import LinearRegression

# 读取数据
data = pd.read_csv(r"D:\pythonProject11\class\糖尿病数据.csv")

# 定义自变量和因变量
x = data[["age", "sex", "bmi", "bp", "s1", "s2", "s3", "s4", "s5", "s6"]]  # 多个特征
y = data["target"]  # 目标变量

# 创建并训练模型
lr_model = LinearRegression()
lr_model.fit(x, y)

# 评估模型
score = lr_model.score(x, y)

# 使用模型进行预测
new_data = [[-0.005514555, -0.044641637, 0.042295589, 0.024574144, 0.023860567,
             0.01, 0.02, 0.03, 0.04, 0.05]]  # 新的样本数据

prediction = lr_model.predict(new_data)

# 输出结果
print(f"预测结果: {prediction}")
print(f"模型评分: {score}")

预测时,我们需要提供与训练数据结构相同的新数据(特征数量和顺序必须一致),然后调用 predict () 方法即可得到预测结果。

相关系数分析

在进行线性回归之前,通常会先分析变量之间的相关性,这可以通过计算相关系数来实现:

import pandas as pd

# 读取数据
data = pd.read_csv("你的数据文件路径")

# 计算相关系数
correlation = data[["变量1", "变量2", "变量3"]].corr()
print(correlation)

相关系数的取值范围在 - 1 到 1 之间:

  • 接近 1 表示强正相关
  • 接近 - 1 表示强负相关
  • 接近 0 表示几乎没有线性相关

分析相关系数可以帮助我们选择合适的自变量,提高模型效果。

总结

本文介绍了使用 Python 的 scikit-learn 库实现线性回归的完整流程,包括:

  1. 线性回归的基本概念和数学表达式
  2. LinearRegression 类的参数和方法
  3. 单变量线性回归的实现(广告投入与销售额)
  4. 多变量线性回归的实现(体重、年龄与血压)
  5. 如何使用训练好的模型进行预测
  6. 相关系数分析的重要性

线性回归作为一种简单而强大的模型,在很多实际问题中都有广泛应用。但需要注意的是,它假设变量之间存在线性关系,对于非线性关系的数据,可能需要考虑其他模型或对特征进行转换。

通过本文的示例代码,相信你已经掌握了线性回归的基本用法。在实际应用中,还需要结合数据预处理、特征工程和模型评估等步骤,才能构建出更稳健的预测模型。

回归分析(线性回归、逻辑回归)详解与 Python 实现 文章目录1. 回归分析概述1.1 基本概念 1. 回归分析概述 1.1 基本概念   回归分析是处理多变量间相关关系的一种数学方法。相关关系不同于函数关系,函数关系反应变量间严格依存性,简单说就是一个自变量对应一个因变量。而相关分析中,对自变量的每一个取值,因变量可以有多个数值与之对应。在统计上,研究相关关系可以运用回归分析和相关分析。   当自变量为非随机变量而因变量为随机变量时,它们的关系分析... 阅读详情

相关推荐

python机器学习-线性回归(LinearRegression)算法

用python进行线性回归分析非常方便,如果看代码长度你会发现真的太简单。但是要灵活运用就需要很清楚的知道线性回归原理及应用场景。现在我来总结一下用python来做线性回归的思路及原理。 线性回归应用场景 线性回归介绍 机器学习中的线性回归 简单的线性回顾实例 线性回归应用场景 线性回归介绍 ——线性回归是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系...

黄俊文的博客 4万+

python实现线性回归

线性回归是无监督学习中的一种算法,根据用户输入的特征数据进行预测,比如根据房子的尺寸来预测房价.

qq_45830471的博客 4058

python-使用LinearRegression进行简单线性拟合(线性回归)

一元线性拟合 现有两组数据,求y=a*x+c的系数 X =[12.46, 0.25, 5.22, 11.3, 6.81, 4.59, 0.66, 14.53, 15.49, 14.43, 2.19, 1.35, 10.02, 12.93, 5.93, 2.92, 12.81, 4.88, 13.11, 5.8] Y =[29.01, 4.7, 22.33, 24.99, 18.85, 14.89, 10.58, 36.84, 42.36, 39.73, 11.92, 7.45, 22.

lanhezhong的博客 3万+

python学习——线性回归

线性回归模型

Annaaphq的博客 1万+

Python线性回归:从理论到实践的完整指南

本文全面介绍了Python中线性回归的理论与实践,涵盖了从基础概念到高级应用的完整流程。首先,文章解释了线性回归的基本概念,包括简单线性回归和多元线性回归的区别。接着,详细阐述了最小二乘法的数学原理及模型评估指标如R平方、均方误差和平均绝对误差。在实际应用部分,强调了数据预处理的重要性,包括缺失值处理、特征缩放和异常值处理,并讨论了模型假设验证的必要性。此外,文章还介绍了特征工程和正则化技术等高级优化方法,以及线性回归在房价预测、销售预测和能耗预测等实际场景中的应用。最后,提供了常见问题的解决方案和最佳实践

web15085415935的博客 1515

【机器学习小论文】sklearn线性回归LinearRegression代码及调参

一、前言 最近在写小论文,就是硕士毕业论文的部分成果,需要用到线性回归,所以就把相关代码贴上,便于日后写论文时总结,也顺便给后来者提供思路。小论文的思路主要是,先用线性回归,再用随机森林,最后再用xgboost,来预测房价,最后得出结论。所以,这个会陆续的贴出相关代码。至于数据清洗那一块,暂时不贴上了,主要原因就是数据清洗不容易,并且每个人的清洗方法也不一样,所以主要还是看思路。 二、算法简介 2.1 什么是回归分析 回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关

xiaohutong1991的专栏 7107

线性回归模型详解

线性回归模型的目标是寻找最佳的线性组合来预测目标变量。具体来说,对于简单线性回归,模型试图找到一条最佳拟合直线,而对于多元线性回归,则是在多维空间中找到一个最佳拟合的超平面。多元线性回归模型可以表示为:其中,𝑌Y 是因变量,𝑋1,𝑋2,...,𝑋𝑛X1​,X2​,...,Xn​ 是自变量,𝛽0β0​ 是截距,𝛽1,𝛽2,...,𝛽𝑛β1​,β2​,...,βn​ 是每个自变量对应的斜率,表示其对𝑌Y的影响程度,而𝜖ϵ 是误差项,反映了模型未能解释的随机波动。

码上飞扬的博客 6575

线性回归LinearRegression

对视频中线性回归算法的相关内容进行总结与记录 文章目录一、理论基础二、实例2.1 一元线性回归2.1.1 推导过程2.1.2 代码实现(基于numpy)2.1.3 代码实现(基于sklearn)2.2 多元线性回归2.2.1 代码实现(基于numpy)2.2.2 代码实现(基于sklearn) 一、理论基础 回归 通常是指利用某个函数,尽可能把数据样本点“串”在一起,用于描述输入变量和输出变量间的变化关系 线性回归 特点:用来把数据“串”起来的那个函数是线性的 (一元线性回归(一个自变量) &a.

邱邱邱的博客 1068

线性回归:LinearRegression模型

LinearRegression` 是一种简单而有效的方法,适用于线性关系的建模。`scikit-learn` 提供了易于使用的 API,非常适合于快速构建和评估线性回归模型。无论是初学者还是专业人士,都可以依赖这个工具来处理回归问题。

Wei_sx的博客 1261

【Python机器学习】——线性回归

在下面的示例中,x 轴表示车龄,y 轴表示速度。重要的是要知道 x 轴的值和 y 轴的值之间的关系有多好,如果没有关系,则线性回归不能用于预测任何东西。注释:结果 -0.76 表明存在某种关系,但不是完美的关系,但它表明我们可以在将来的预测中使用线性回归。r 平方值的范围是 0 到 1,其中 0 表示不相关,而 1 表示 100% 相关。让我们创建一个实例,其中的线性回归并不是预测未来值的最佳方法。例如:让我们尝试预测一辆拥有 10 年历史的汽车的速度。您应该得到了一个非常低的 r-squared 值。

玄链教育 1301

机器学习笔记一:使用LinearRegression实现Boston房价线性回归

一、LinearRegression类 sklearn.linear_model.LinearRegression(fit_intercept=True, normalize=False, copy_X=True, n_jobs=None) 参数 含义 fit_intercept 是否有截据,如果没有则直线过原点 normalize 是否将数据归一化 copy_X 默认为True,当为True时,X会被copi

耐心的小黑的博客 2780

基于Python的线性回归预测模型介绍及实践

基于Python的线性回归预测模型实践 参考自《从零开始学数据分析与挖掘》 [中]刘顺祥 著 线性回归预测模型属于经典的统计学模型,该模型的应用场景是根据已知的变量(即自变量)来预测某个连续的数值变量(因变量)。例如,餐厅根据每天的营业数据(菜谱价格、就餐人数等等)来预测就餐规模或者营业额;网站根据访问的历史数据(包括新用户的注册量、老用户的活跃度等等)来预测用户的支付转化率;医院根据患者的病历数...

weixin_46302487的博客 7731

当 AI + 可视化融入消防:开启智能消防新时代

总结来说,AI + 可视化技术融入消防,开启了智能消防新时代。它以精准预警、高效救援和全面资源管理,革新消防工作方式。从前期规划到系统搭建,再到后期运维,每个环节都为提升消防能力奠定基础。尽管面临技术成本、数据安全和人员适应等挑战,但随着技术发展和应用推广,这些问题将逐步解决。相信在 AI + 可视化助力下,消防领域将不断进步,为人们创造更安全生活环境,有效抵御火灾威胁。

2401_87844374的博客 1220

线性回归(LinearRegression)实现房价预测

线性回归主要运用于来连续型特征样本的预测,本次预测数据主要以波士顿房价数据为列训练并评估模型。本次使用基本的最小二乘法和sklearn模块分别用于预测房价。 1、首先使用线性回归算法最小二乘法实现预测 导入需要的python库 import numpy as np import pandas as pd import pylab 建立computer_error函数,构造误差函数 ∑_(...

飛鹰 1万+

2025.03.14【读书笔记】|GWAS分析神器:BOLT-LMM工具介绍与快速安装

在生物信息学领域,全基因组关联分析(GWAS)已成为揭示遗传与疾病关系的强有力工具。BOLT-LMM作为一款专为大规模样本量设计的GWAS分析工具,将极大地提高研究人员的工作效率。大家好,今天我们来聊聊一个非常强大的生物信息学工具——BOLT-LMM。它是基于线性混合模型(LMM)的全基因组关联分析(GWAS)分析工具,通过快速的方差近似方法在计算效率上实现了显著的提升。BOLT-LMM的高效性能使其成为大规模样本GWAS分析的理想选择,它将进一步推动生物信息学和遗传学研究的发展。

1093

VSCode + Latex 配置

1. 安装VSCode VSCode下载 next,next就安装好了。 2. 配置VSCode 2.1 安装LaTeX Workshop插件 install,安装LaTeX Workshop插件 2.2 修改 user setting 点击左下角,进入用户设置 点击上图标记的部分,选择 打开settings.json 具体配置文件如下: { "latex-workshop.la...

一只特立独行的猪 10万+

线性回归python实现详解(附公式推导)

目录1线性回归1.1简单线性回归1.2 多元线性回归1.3 使用sklearn中的线性回归模型 1线性回归 1.1简单线性回归 在简单线性回归中,通过调整a和b的参数值,来拟合从x到y的线性关系。下图为进行拟合所需要优化的目标,也即是MES(Mean Squared Error),只不过省略了平均的部分(除以m)。 对于简单线性回归,只有两个参数a和b,通过对MSE优化目标求极值(最小二乘法),即可求得最优a和b如下,所以在训练简单线性回归模型时,也只需要根据数据求解这两个参数值即可。 下面使用波士顿

Demon_LMMan的博客 2万+

零信任架构实战:“持续验证+动态授权”全流程解析(附策略引擎联动图)

《零信任实战指南:7图拆解核心流程与行业案例》摘要:本文通过7张架构图系统解析零信任五大核心流程:强身份认证、设备检查、动态授权、持续监控和自动降权。对比金融(重数据审计)与制造业(重物理绑定)的落地差异,指出三大常见误区及解决方案。数据显示,零信任可使安全响应提速60%,泄露成本降低45%。文章提供6个月实施路线图,强调零信任是"智能信任"体系,建议企业分阶段改造,优先保护核心系统。附赠金融/制造行业策略模板及甘特图示例。(149字)

sara_han的博客 773

python实现一元线性回归

这个专栏主要是自己用python入门深度学习和图像识别的一些学习笔记和心得体会。既有一些算法理论的理解,也有python代码的实现,争取对一个问题做到知其然并知其所以然,理论和实践并进。大家一起加油!栏目的框架主要从最基础的机器学习开始,到神经网络的基础,再用pytorch实现图像分类,目标检测,分割,产生式模型等。使用的工具主要是numpy和pytorch。

cyqistrue的博客 5743

GXHT40温湿度传感器:I2C通信与CRC校验实战解析

本文详细解析GXHT40温湿度传感器的I2C通信协议与CRC校验机制,涵盖硬件连接、时序控制、数据读取及加热功能应用。通过实战案例分享优化技巧与异常处理,帮助开发者提升嵌入式系统中传感器数据的准确性与可靠性。

rgv234567的博客 241

Android CPU调度优化完整分析 - 小白入门到精通

本文全面解析Android CPU调度优化技术,从硬件架构到内核实现。首先介绍ARM big.LITTLE架构的硬件拓扑和性能层级,包括大核、小核和DynamIQ技术。然后深入讲解CPU性能状态管理(P-states和C-states)和硬件计数器支持。内核层部分详细分析调度器架构,包括调度类层次结构和核心调度实体实现,重点剖析CFS调度器的虚拟运行时间计算、红黑树操作和PELT负载跟踪算法。最后探讨负载均衡触发条件和实现机制。全文循序渐进,为开发者提供完整的Android CPU调度优化知识体系。

xhxh510573522125的博客 152

线性回归全解析: 从基础理论到 Python 实现

深入探索线性回归的核心理论和原理,并学习如何使用Python进行实际的模型实现和预测。本文为您提供了从理论到实践的全面指导,无论您是机器学习的初学者还是有经验的研究者,都能从中受益。

我是小白呀的博客 2354

阅文集团大数据面试题及参考答案

在 Flink 中,watermark 是一种用于处理乱序事件时间的机制。实现接口:通常需要实现 AssignerWithPeriodicWatermarks 或 AssignerWithPunctuatedWatermarks 接口。前者会周期性地生成 watermark,后者则是基于某些特定事件来生成 watermark ,比如接收到某个特定值的消息时。定义位置:可以在数据源处或者在流处理的中间操作中定义 watermark。在数据源定义时,能更精准地根据数据的产生特性设置 watermark;

大模型大数据攻城狮的专栏 1088

python LinearRegression线性回归

两个变量之间存在一次方函数关系,就称它们之间存在线性关系。更通俗一点讲,如果把这两个变量分别作为点的横坐标与纵坐标,其图象是平面上的一条直线,则这两个变量之间的关系就是线性关系。

zj88189748的专栏 2157

AI绘画与医疗可视化:用AI生成医学插图的实践

医疗可视化是医学教育、临床沟通和学术研究的核心工具。传统医学插图依赖手工绘制或专业3D建模,存在制作周期长、成本高、更新迭代慢等问题。随着深度学习技术的发展,AI绘画工具(如Stable Diffusion、DALL-E)展现出强大的图像生成能力,但医疗领域对插图的解剖准确性、标注规范性和语义完整性有极高要求,通用AI模型难以直接应用。本文聚焦AI技术与医疗领域的交叉创新,系统阐述如何通过数据预处理、模型定制化训练和后处理校验,构建符合医疗标准的插图生成系统。

大模型应用工坊 1788

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Python实现线性回归模型

Python实现线性回归模型# 创建数据集,把数据写入numpy数组打印出数组的大小从data中提取出身高和体重,分别存在x,y变量中在二维空间里画出身高和体重的分布图建立线性回归模型,并进行训练检验模型效果画出已训练好的线条新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UM

Denise_Du的博客 2049

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

上一篇: 基于 OpenCV 与 sklearn 的数字识别:KNN 算法实践
下一篇: python逻辑回归:数学原理到实战应用
dlraba802
博客等级 码龄4年 440粉丝 84原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值