当前位置: 首页 > news >正文

广义线性模型(GLM)全面解析

引言

广义线性模型(Generalized Linear Model, GLM)是统计学中一种重要的建模工具,它扩展了传统线性回归模型,能够处理响应变量的非正态分布和非线性关系。GLM 的灵活性和广泛的应用范围使其在金融、医学、社会科学等领域中成为数据分析的核心方法。本文将深入探讨 GLM 的定义、核心组成部分以及指数族分布的应用,为读者提供一个全面的理解框架。
在这里插入图片描述


一、广义线性模型概述

(一)定义与核心组成部分

广义线性模型通过三个核心组成部分来描述响应变量与预测变量之间的关系:随机成分、系统成分和链接函数。
在这里插入图片描述

  1. 随机成分
    随机成分指响应变量的分布类型,通常属于指数族分布。常见的分布包括正态分布、二项分布、泊松分布等。这些分布的概率密度函数或概率质量函数可以表示为指数族的形式,这使得它们在理论和应用中非常便利。指数族分布的一般形式为:
    f ( y ; θ ) = h ( y ) exp ⁡ ( η ( θ ) ⋅ T ( y ) − A ( θ ) ) f(y; \theta) = h(y) \exp\left(\eta(\theta) \cdot T(y) - A(\theta)\right) f(y;θ)=h(y)exp(η(θ)T(y)A(θ))
    其中, ( θ ) ( \theta ) (θ) 是自然参数, ( T ( y ) ) ( T(y) ) (T(y)) 是充分统计量, ( h ( y ) ) ( h(y) ) (h(y)) 是基准函数, ( A ( θ ) ) ( A(\theta) ) (A(θ)) 是对数配分函数。
    在这里插入图片描述

  2. 系统成分
    系统成分由线性预测器组成,形式为:
    η = X β \eta = X\beta η=
    其中, ( X ) ( X ) (X) 是特征矩阵, ( β ) ( \beta ) (β) 是参数向量。系统成分描述了模型中的解释变量及其线性组合,与传统线性回归模型中的系统部分相似。

  3. 链接函数
    链接函数将随机成分与系统成分连接起来,常见的链接函数包括逻辑函数(logistic)、对数函数(log)等。链接函数的作用是将线性预测器的结果转换为与响应变量的分布相匹配的形式,使得模型能够更好地拟合数据。链接函数的一般形式为:
    g ( μ ) = η g(\mu) = \eta g(μ)=η
    其中, ( μ ) ( \mu ) (μ) 是响应变量的期望值, ( η ) ( \eta ) (η) 是线性预测器。
    在这里插入图片描述


二、指数族分布在广义线性模型中的应用

(一)指数族分布的特点

指数族分布是一类具有特定形式的概率分布,其概率密度函数或概率质量函数可以表示为指数族的形式。指数族分布的一般形式为:
f ( y ; θ ) = h ( y ) exp ⁡ ( η ( θ ) ⋅ T ( y ) − A ( θ ) ) f(y; \theta) = h(y) \exp\left(\eta(\theta) \cdot T(y) - A(\theta)\right) f(y;θ)=h(y)exp(η(θ)T(y)A(θ))
其中, ( θ ) ( \theta ) (θ) 是自然参数, ( T ( y ) ) ( T(y) ) (T(y)) 是充分统计量, ( h ( y ) ) ( h(y) ) (h(y)) 是基准函数, ( A ( θ ) ) ( A(\theta) ) (A(θ)) 是对数配分函数。指数族分布的均值和方差都有简洁的表达式,其均值为:
E [ Y ] = μ = A ′ ( θ ) \mathbb{E}[Y] = \mu = A'(\theta) E[Y]=μ=A(θ)
方差为:
Var ( Y ) = A ′ ′ ( θ ) \text{Var}(Y) = A''(\theta) Var(Y)=A′′(θ)
这些性质使得在广义线性模型中,对参数的估计和推断更加方便和高效。

(二)不同指数族分布的形式及应用案例
  1. 高斯分布
    高斯分布的概率密度函数为:
    f ( y ; μ , σ 2 ) = 1 2 π σ 2 exp ⁡ ( − ( y − μ ) 2 2 σ 2 ) f(y; \mu, \sigma^2) = \frac{1}{\sqrt{2\pi\sigma^2}} \exp\left(-\frac{(y-\mu)^2}{2\sigma^2}\right) f(y;μ,σ2)=2πσ2 1exp(2σ2(yμ)2)
    可以化为指数族分布的形式:
    f ( y ; θ ) = exp ⁡ ( y μ − μ 2 2 σ 2 − y 2 2 σ 2 − 1 2 ln ⁡ ( 2 π σ 2 ) ) f(y; \theta) = \exp\left(\frac{y\mu - \frac{\mu^2}{2}}{\sigma^2} - \frac{y^2}{2\sigma^2} - \frac{1}{2}\ln(2\pi\sigma^2)\right) f(y;θ)=exp(σ2yμ2μ22σ2y221ln(2πσ2))
    其中,KaTeX parse error: Can't use function '\)' in math mode at position 16: ( \theta = \mu \̲)̲,\( T(y) = y ) ( A ( θ ) = μ 2 2 σ 2 ) ( A(\theta) = \frac{\mu^2}{2\sigma^2} ) (A(θ)=2σ2μ2)
    高斯分布广泛应用于回归分析中,例如线性回归模型。在机器学习中,高斯分布常用于高斯混合模型(GMM),用于聚类和密度估计。

  2. 伯努利分布
    伯努利分布的概率质量函数为:
    f ( y ; p ) = p y ( 1 − p ) 1 − y f(y; p) = p^y (1-p)^{1-y} f(y;p)=py(1p)1y
    可以写成指数族分布形式:
    f ( y ; θ ) = exp ⁡ ( y ln ⁡ ( p 1 − p ) + ln ⁡ ( 1 − p ) ) f(y; \theta) = \exp\left(y\ln\left(\frac{p}{1-p}\right) + \ln(1-p)\right) f(y;θ)=exp(yln(1pp)+ln(1p))
    其中, ( θ = ln ⁡ ( p 1 − p ) ) ( \theta = \ln\left(\frac{p}{1-p}\right) ) (θ=ln(1pp)) ( T ( y ) = y ) ( T(y) = y ) (T(y)=y) ( A ( θ ) = ln ⁡ ( 1 + e θ ) ) ( A(\theta) = \ln(1 + e^\theta) ) (A(θ)=ln(1+eθ))
    伯努利分布在二分类问题中非常常见,例如逻辑回归模型。在医学诊断中,判断患者是否患有某种疾病(患病为 1,未患病为 0),可以使用基于伯努利分布的广义线性模型。

  3. 二项分布
    二项分布的概率质量函数为:
    f ( y ; n , p ) = ( n y ) p y ( 1 − p ) n − y f(y; n, p) = \binom{n}{y} p^y (1-p)^{n-y} f(y;n,p)=(yn)py(1p)ny
    可以表示为指数族分布形式:
    f ( y ; θ ) = exp ⁡ ( y ln ⁡ ( p 1 − p ) + n ln ⁡ ( 1 − p ) + ln ⁡ ( n y ) ) f(y; \theta) = \exp\left(y\ln\left(\frac{p}{1-p}\right) + n\ln(1-p) + \ln\binom{n}{y}\right) f(y;θ)=exp(yln(1pp)+nln(1p)+ln(yn))
    其中, ( θ = ln ⁡ ( p 1 − p ) ) ( \theta = \ln\left(\frac{p}{1-p}\right) ) (θ=ln(1pp)) ( T ( y ) = y ) ( T(y) = y ) (T(y)=y) ( A ( θ ) = n ln ⁡ ( 1 + e θ ) ) ( A(\theta) = n\ln(1 + e^\theta) ) (A(θ)=nln(1+eθ))
    二项分布在多项式分类问题中很有用,例如多项式逻辑回归。在市场调研中,调查消费者对不同品牌产品的偏好,可以使用基于二项分布的广义线性模型。

  4. 泊松分布
    泊松分布的概率质量函数为:
    f ( y ; λ ) = λ y e − λ y ! f(y; \lambda) = \frac{\lambda^y e^{-\lambda}}{y!} f(y;λ)=y!λyeλ
    可以转化为指数族分布形式:
    f ( y ; θ ) = exp ⁡ ( y ln ⁡ λ − λ − ln ⁡ ( y ! ) ) f(y; \theta) = \exp\left(y\ln\lambda - \lambda - \ln(y!)\right) f(y;θ)=exp(ylnλλln(y!))
    其中, ( θ = ln ⁡ λ ) ( \theta = \ln\lambda ) (θ=lnλ) ( T ( y ) = y ) ( T(y) = y ) (T(y)=y) ( A ( θ ) = e θ ) ( A(\theta) = e^\theta ) (A(θ)=eθ)
    泊松分布在计数数据建模中非常有用,例如在文本分析中用于词频建模,分析一篇文章中某个单词出现的次数。

  5. 伽马分布
    伽马分布的概率密度函数为:
    f ( y ; k , θ ) = y k − 1 e − y / θ θ k Γ ( k ) f(y; k, \theta) = \frac{y^{k-1} e^{-y/\theta}}{\theta^k \Gamma(k)} f(y;k,θ)=θkΓ(k)yk1ey/θ
    可以表示为指数族分布形式:
    f ( y ; θ ) = exp ⁡ ( − y θ + ( k − 1 ) ln ⁡ y − k ln ⁡ θ − ln ⁡ Γ ( k ) ) f(y; \theta) = \exp\left(-\frac{y}{\theta} + (k-1)\ln y - k\ln\theta - \ln\Gamma(k)\right) f(y;θ)=exp(θy+(k1)lnyklnθlnΓ(k))
    其中, ( θ = 1 θ ) ( \theta = \frac{1}{\theta} ) (θ=θ1) ( T ( y ) = y ) ( T(y) = y ) (T(y)=y) ( A ( θ ) = k ln ⁡ θ ) ( A(\theta) = k\ln\theta ) (A(θ)=klnθ)
    伽马分布在生存分析和可靠性工程中用于建模寿命数据。

  6. 狄利克雷分布
    狄利克雷分布的概率密度函数为:
    f ( y ; α ) = 1 B ( α ) ∏ i = 1 k y i α i − 1 f(y; \alpha) = \frac{1}{B(\alpha)} \prod_{i=1}^k y_i^{\alpha_i-1} f(y;α)=B(α)1i=1kyiαi1
    可以写成指数族分布形式:
    f ( y ; θ ) = exp ⁡ ( ∑ i = 1 k ( α i − 1 ) ln ⁡ y i − ln ⁡ B ( α ) ) f(y; \theta) = \exp\left(\sum_{i=1}^k (\alpha_i-1)\ln y_i - \ln B(\alpha)\right) f(y;θ)=exp(i=1k(αi1)lnyilnB(α))
    其中, ( θ = α ) ( \theta = \alpha ) (θ=α) ( T ( y ) = ln ⁡ y ) ( T(y) = \ln y ) (T(y)=lny) ( A ( θ ) = ln ⁡ B ( α ) ) ( A(\theta) = \ln B(\alpha) ) (A(θ)=lnB(α))
    狄利克雷分布在贝叶斯推断中用于多分类问题的先验分布。


三、广义线性模型的参数估计

(一)最大似然估计

广义线性模型的参数通常通过最大似然估计(Maximum Likelihood Estimation, MLE)来确定。对于指数族分布,似然函数的形式为:
L ( θ ; y ) = ∏ i = 1 n f ( y i ; θ ) L(\theta; y) = \prod_{i=1}^n f(y_i; \theta) L(θ;y)=i=1nf(yi;θ)
对数似然函数为:
ℓ ( θ ; y ) = ∑ i = 1 n ( y i η ( θ ) − A ( θ ) ) + 常数 \ell(\theta; y) = \sum_{i=1}^n \left( y_i \eta(\theta) - A(\theta) \right) + \text{常数} (θ;y)=i=1n(yiη(θ)A(θ))+常数
通过最大化对数似然函数,可以得到参数的估计值。
示例代码(Python 使用 statsmodels 库拟合 GLM):

import statsmodels.api as sm
import pandas as pd# 示例数据
data = pd.DataFrame({'x1': [1, 2, 3, 4, 5],'x2': [2, 3, 4, 5, 6],'y': [0, 1, 0, 1, 1]
})# 定义自变量和因变量
X = data[['x1', 'x2']]
X = sm.add_constant(X)  # 添加截距项
y = data['y']# 拟合逻辑回归模型(GLM 的一种)
model = sm.GLM(y, X, family=sm.families.Binomial())
results = model.fit()# 输出模型结果
print(results.summary())
(二)迭代加权最小二乘法

在实际计算中,广义线性模型的参数通常通过迭代加权最小二乘法(Iteratively Reweighted Least Squares, IRLS)来求解。IRLS 是一种迭代算法,通过不断更新权重和预测值,逐步逼近最大似然估计的解。


四、广义线性模型的诊断与评估

(一)残差分析

残差分析是评估模型拟合效果的重要方法。对于广义线性模型,常用的残差包括 Pearson 残差和 Deviance 残差。Pearson 残差定义为:
r i = y i − μ ^ i Var ( μ ^ i ) r_i = \frac{y_i - \hat{\mu}_i}{\sqrt{\text{Var}(\hat{\mu}_i)}} ri=Var(μ^i) yiμ^i
Deviance 残差定义为:
d i = sign ( y i − μ ^ i ) 2 ( ℓ ( y i ; y i ) − ℓ ( μ ^ i ; y i ) ) d_i = \text{sign}(y_i - \hat{\mu}_i) \sqrt{2 \left( \ell(y_i; y_i) - \ell(\hat{\mu}_i; y_i) \right)} di=sign(yiμ^i)2((yi;yi)(μ^i;yi))
通过分析残差的分布和模式,可以判断模型是否存在系统性偏差或异常值。
示例代码(Python 计算残差):

# 计算 Pearson 残差
pearson_residuals = results.resid_pearson# 计算 Deviance 残差
deviance_residuals = results.resid_deviance# 输出残差
print("Pearson Residuals:", pearson_residuals)
print("Deviance Residuals:", deviance_residuals)
(二)模型选择准则

常用的模型选择准则包括 AIC(Akaike Information Criterion)和 BIC(Bayesian Information Criterion)。AIC 和 BIC 的定义分别为:
AIC = − 2 ℓ ( θ ^ ; y ) + 2 k \text{AIC} = -2 \ell(\hat{\theta}; y) + 2k AIC=2(θ^;y)+2k
BIC = − 2 ℓ ( θ ^ ; y ) + k ln ⁡ n \text{BIC} = -2 \ell(\hat{\theta}; y) + k \ln n BIC=2(θ^;y)+klnn
其中, ( k ) ( k ) (k) 是模型参数的数量, ( n ) ( n ) (n) 是样本量。AIC 和 BIC 越小,模型拟合效果越好。
示例代码(Python 计算 AIC 和 BIC):

# 计算 AIC 和 BIC
aic = results.aic
bic = results.bic# 输出结果
print("AIC:", aic)
print("BIC:", bic)

结语

广义线性模型作为一种强大的统计工具,其灵活性和广泛的应用范围使其在各个领域中发挥着重要作用。通过深入理解 GLM 的核心组成部分、指数族分布的应用以及参数估计和诊断方法,我们可以更好地利用这一工具来解决实际问题,为数据分析和决策提供有力支持。


参考文献

  • 广义线性模型简介
  • 指数族分布在 GLM 中的应用
  • 最大似然估计与迭代加权最小二乘法
  • 模型诊断与评估方法

相关文章:

广义线性模型(GLM)全面解析

引言 广义线性模型(Generalized Linear Model, GLM)是统计学中一种重要的建模工具,它扩展了传统线性回归模型,能够处理响应变量的非正态分布和非线性关系。GLM 的灵活性和广泛的应用范围使其在金融、医学、社会科学等领域中成为数…...

C++ OCR 文字识别

一.引言 文字识别,也称为光学字符识别(Optical Character Recognition, OCR),是一种将不同形式的文档(如扫描的纸质文档、PDF文件或数字相机拍摄的图片)中的文字转换成可编辑和可搜索的数据的技术。随着技…...

PHP实现登录和注册(附源码)

前言 本博客主要讲述利用php环境实现一个简单的前后端结合的用户登录和注册功能。phpstudy是PHP调试环境的集成包,该程序包集成了 ApachePHPMySQLphpMyAdmin 等多个工具,是很好用的调试环境的程序集成包。 目录 前言 1. 准备工作 1.1 工具 1.2 php…...

AEO海关认证的注意事项

AEO海关认证的注意事项繁多且至关重要,企业需细致准备,确保万无一失。 首先,企业需深入研读相关政策文件,如《中华人民共和国海关注册登记和备案企业信用管理办法》及《海关高级认证企业标准》,以政策为指引&#xff0…...

ElasticSearch 分布式部署

一、引言 在当今大数据时代,数据呈爆炸式增长,如何高效地存储、检索数据成为了众多企业面临的关键挑战。ElasticSearch 作为一款强大的分布式搜索引擎,凭借其卓越的性能、灵活的扩展性以及强大的全文检索能力,在日志分析、数据分…...

Vue中动态样式绑定+CSS变量实现切换明暗主题功能——从入门到进阶

1.直接借助Vue的动态绑定样式绑定 Vue动态样式绑定 在Vue中,动态样式绑定是一种强大的功能,它允许开发者根据数据的变化动态地更新元素的样式。以下是对Vue动态样式绑定的详细知识梳理与详解: 一、基础知识 Vue的动态样式绑定主要通过v-b…...

vue3 video 播放rtmp视频?(360浏览器支持)

** 注意:目前只能在360浏览器播放rtmp视频** 谷歌浏览器不支持Flash Player的问题 试过上面这个方法,目前没能实现(没解决),如果有更好的解决方法,告诉我一下 需要下载版本较低的video.js版本库&#xff0…...

RK356x bsp 7 - PCF8563 RTC调试记录

文章目录 1、环境介绍2、目标3、PCF85634、dts配置5、内核配置6、测试验证 1、环境介绍 硬件:飞凌ok3568-c开发板 软件:原厂rk356x sdk 2、目标 开发板断电后仍正常计时。 3、PCF8563 PCF8563 是由 NXP Semiconductors 公司生产的低功耗 CMOS 实时…...

定义Shape:打造属于你的独特图形

自定义Shape:打造属于你的独特图形 在Android开发中,自定义图形绘制是一个非常重要的技能,尤其是在需要实现复杂UI或特定设计需求时。Android提供了android.graphics.drawable.shapes包,其中包含了一些基本的形状类,如RectShape、OvalShape等。然而,有时这些基本形状无法…...

JavaWeb(一) | 基本概念(web服务器、Tomcat、HTTP、Maven)、Servlet 简介

1. 基本概念 1.1、前言 web开发: web,网页的意思,www.baidu.com静态 web html,css提供给所有人看的数据始终不会发生变化! 动态 web 淘宝,几乎是所有的网站;提供给所有人看的数据始终会发生变化&#xf…...

python学opencv|读取图像(二十一)使用cv2.circle()绘制圆形进阶

【1】引言 前序已经掌握了使用cv2.circle()绘制圆形的基本操作,相关链接为: python学opencv|读取图像(二十)使用cv2.circle()绘制圆形-CSDN博客 由于圆形本身绘制起来比较简单,因此可以自由操作的空间也就大&#x…...

CLIP:连接文本与图像, 从自然语言监督中学习可迁移的视觉模型

CLIP:连接文本与图像, 从自然语言监督中学习可迁移的视觉模型 flyfish Learning Transferable Visual Models From Natural Language Supervision https://github.com/OpenAI/CLIP 摘要 CLIP Contrastive Language-Image Pre-Training Contrastive&…...

Linux 硬盘扩容 分区 挂载

Linux 硬盘扩容 分区 & 挂载 1. 添加分区 1.1. 查看新添加的硬盘 fdisk -l假设当前未挂载的盘符是/dev/sdb,后文中所有操作都按挂载/dev/sdb 操作 1.2. 分区管理 小硬盘 fdisk /dev/sdb大硬盘(2TB以上) gdisk /dev/sdb1.3. 编辑分…...

基于 Slf4j 和 AOP 的自动化方法执行时间日志记录方案

前言 其实这个需求很简单,但是这个需求又是项目中必不可少的,尤其对于性能调优这块,但是使用哪种方式更加方便呢,这就是本篇博文需要讨论的重点 系统时间 可以通过 System.currentTimeMillis() 或 System.nanoTime() 来实现。 …...

关于 K8s 的一些基础概念整理-补充【k8s系列之二】

〇、前言 本文继续整理下 K8s 的一些基础概念,作为前一篇概念汇总的补充。 前一篇博文链接:关于 K8s 的一些基础概念整理【k8s系列之一】_集群 master节点 控制节点 宿主机-CSDN博客 一、详情 1.1 Label Label 在 k8s 中是一个非常核心的概念&#xf…...

FPGA的DMA应用——pcileech

硬件通过pcie总线,访存本机的内存,并进行修改,可以进行很多操作。 学习视频:乱讲DMA及TLP 1-pcileech项目简介和自定义模块介绍_哔哩哔哩_bilibili vivado2024.1的下载文章链接和地址:AMD-Xilinx Vivado™ 2024.1 现…...

信息安全管理:运行管理checklist

运行管理checklist内容包括日常操作与维护管理、变更管理、备份与故障恢复、应急与业务连续性管理等内容。 一、日常操作与维护管理 ▼▼制度与流程 是否建立日常运行操作制度与流程?包括网络、主机、应用等方面的操作制度与流程? 是否明确相关部门和人…...

Linux系统之stat命令的基本使用

Linux系统之stat命令的基本使用 一、stat命令 介绍二、stat命令帮助2.1 查询帮助信息2.2 stat命令的帮助解释 三、stat命令的基本使用3.1 查询文件信息3.2 查看文件系统状态3.3 使用格式化输出3.4 以简洁形式打印信息 四、注意事项 一、stat命令 介绍 stat 命令用于显示文件或文…...

云手机+Facebook:让科技与娱乐完美结合

移动互联网时代,Facebook作为全球最大的社交媒体平台之一,早已成为企业、品牌和组织竞相角逐的营销阵地。而云手机的出现,则为Facebook营销注入了新的活力,其独特的优势让营销活动更加高效、精准且灵活。本文将深入探讨云手机在Fa…...

为什么要在PHY芯片和RJ45网口中间加网络变压器

在PHY芯片和RJ45网口之间加入网络变压器是出于以下几个重要的考虑: 1. 电气隔离:网络变压器提供了电气隔离功能,有效阻断了PHY芯片与RJ45之间直流分量的直接连接。这样可以防止可能的电源冲突,降低系统故障的风险,并保…...

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)

CSI-2 协议详细解析 (一&#xff09; 1. CSI-2层定义&#xff08;CSI-2 Layer Definitions&#xff09; 分层结构 &#xff1a;CSI-2协议分为6层&#xff1a; 物理层&#xff08;PHY Layer&#xff09; &#xff1a; 定义电气特性、时钟机制和传输介质&#xff08;导线&#…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

STM32标准库-DMA直接存储器存取

文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA&#xff08;Direct Memory Access&#xff09;直接存储器存取 DMA可以提供外设…...

什么是EULA和DPA

文章目录 EULA&#xff08;End User License Agreement&#xff09;DPA&#xff08;Data Protection Agreement&#xff09;一、定义与背景二、核心内容三、法律效力与责任四、实际应用与意义 EULA&#xff08;End User License Agreement&#xff09; 定义&#xff1a; EULA即…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

浅谈不同二分算法的查找情况

二分算法原理比较简单&#xff0c;但是实际的算法模板却有很多&#xff0c;这一切都源于二分查找问题中的复杂情况和二分算法的边界处理&#xff0c;以下是博主对一些二分算法查找的情况分析。 需要说明的是&#xff0c;以下二分算法都是基于有序序列为升序有序的情况&#xf…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...