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

R语言+AI提示词:贝叶斯广义线性混合效应模型GLMM生物学Meta分析

全文链接:https://tecdat.cn/?p=40797

本文旨在帮助0基础或只有简单编程基础的研究学者,通过 AI 的提示词工程,使用 R 语言完成元分析,包括数据处理、模型构建、评估以及结果解读等步骤点击文末“阅读原文”获取完整代码、数据、文档)。

主要介绍了元分析的概念、工作原理、固定效应与随机效应元分析的区别,以及模型的语法、输出结果解读、先验知识的应用等内容,还探讨了如何控制测量误差和处理不同的方差结构。

一、引言

元分析是对多个相似主题的单个研究结果进行的统计分析,它能提供比单个研究更可靠的估计,还能揭示研究间的模式和趋势。在生物研究中,我们常常寻找生物对不同处理或环境响应的预测因子,元分析是实现这一目标的有效方法。
在贝叶斯统计框架下,使用马尔可夫链蒙特卡罗(MCMC)方法拟合广义线性混合效应模型(GLMM)。即使不完全理解贝叶斯统计和混合建模的复杂概念,也可以使用该包进行分析。

二、元分析的概念

元分析是对众多关于相似主题的单个研究结果的统计分析。与单个研究相比,它能提供更稳健的估计,还能在控制单个研究中固有的非独立性和测量误差来源的同时,揭示研究间的模式和趋势。
例如,当比较来自不同位置(如纬度、海拔、半球、气候区)、不同物种(如具有不同行为或生活史特征)或不同时间段(如研究的时间和持续时间)的研究时,会引入非独立性来源,在估计所有研究的平均效应时需要控制这些来源。
然而,这些非独立性来源也可能是我们感兴趣的。比如,在控制纬度时,可能会发现它能解释我们所关注的响应中研究间的很大一部分方差,从而可以说纬度是该响应的一个良好预测因子。
作为生物学家,我们经常寻找生物对不同处理或环境等响应的预测因子(如上述提到的位置差异、物种或时间段),元分析是实现这一目标的好方法。

三、MCMCglmm介绍

MCMCglmm使用马尔可夫链蒙特卡罗(MCMC)方法,在贝叶斯统计框架下拟合广义线性混合效应模型(GLMM)。贝叶斯统计听起来可能很复杂,但实际上比频率统计更直观。
以抛硬币为例,频率统计认为抛硬币出现正面的概率是0.5,这是在大量抛硬币实验中正面出现的频率,即基于一组参数值观察数据的概率。而贝叶斯统计认为,如果硬币已经抛出但未让你看到结果,你说出现正面的概率是0.5,是因为你不知道实际结果,硬币要么是正面要么是反面,概率为0或1,贝叶斯统计的基础是存在一个真实的参数值,但你不知道它是什么,它考虑的是基于观察数据的一组参数值的概率,表征了对真实值的主观不确定性。
在贝叶斯统计中,我们基于对先前情况的了解,在模型中纳入先验概率。此时,数据是固定的,而参数根据我们的先验知识以及我们对某种结果发生可能性的判断而改变。模型的输出是一个后验分布,它是数据、先验知识和似然函数的组合。

四、固定效应与随机效应元分析

在贝叶斯分析中,固定效应和随机效应没有根本区别,关键在于理解每种类型的分析如何处理方差。
固定效应元分析假设任何观察间的方差仅由抽样误差引起(即当精度趋于无穷大时,漏斗图会收敛到一个点)。在组合实验研究时特别有用,例如在分析大量个体处理的元分析中,如果我们想明确回答“雄性或雌性对某种处理的反应更有效吗”这样的问题,可以将性别作为固定效应。当我们将一个效应视为固定效应时,认为其他效应的知识不会提供关于我们关注效应的可能大小的信息。
随机效应元分析则会利用这些信息,认为抽样误差可能导致极端估计,因此这些估计应被给予较少的统计权重。此外,观察间的一些方差被认为是真实的并被估计。在处理来自野外系统的数据时特别有用,因为我们假设存在自然变异,并希望找到有助于解释它的模式。
例如,在研究候鸟到达繁殖地的时间是否与过去几十年大致相同,或者由于气候变化现在是更早还是更晚到达的问题中,我们收集了来自许多不同已发表研究的数据,这些数据包含了不同物种、国家、纬度等信息。我们可以使用包含这些信息的数据集,通过元分析计算所有种群的平均天数差异,同时将物种作为随机效应,以了解物种间的方差,并估计每个物种的平均响应。

五、熟悉MCMCglmm的语法和模型输出

准备工作

  1. 安装软件:确保你已经安装了 R 语言环境。你可以从 R 官方网站(https://www.r-project.org/)下载并安装适合你操作系统的版本。

  2. 安装相关包:打开 R 语言环境,运行以下代码安装本教程所需的包:

  3. 数据准备:准备好你的数据文件,本教程中使用的示例数据文件名为“metadata.csv”,请确保数据文件的格式正确且包含所需的变量(如 Predictor、Slope、SE、Species、Location、Study 等),并将其放置在你指定的工作目录中。

AI 工具选择

你可以选择使用各种支持自然语言生成代码的 AI 工具,如 deepseek、ChatGPT等。在本教程中,我们将以通用的方式介绍提示词工程,你可以根据自己的喜好选择合适的 AI 工具。

提示词工程步骤

  1. 启动 AI 工具并输入基本提示:打开你选择的 AI 工具,输入以下提示词,让 AI 了解我们的任务背景:
    “我是一个研究学者,想使用 R 语言进行元分析,数据已经准备好,存储在名为‘metadata.csv’的文件中,数据包含 Predictor、Slope、SE、Species、Location、Study 等变量,你能逐步指导我完成这个元分析过程吗?”

  1. 数据导入与初步查看:根据 AI 的回复,你会得到类似以下的代码及解释,按照提示在 R 语言中运行代码:

在进行分析时,首先需要下载数据并导入到R中,加载所需的包。通过设置工作目录来指定数据所在的文件夹,可以使用setwd("your-filepath")代码(将your-filepath替换为实际文件路径),或者通过点击Session/Set working directory/Choose directory来选择文件夹。

# 加载包
library("dplyr") # 用于数据操作
migrata <- read.csv("metadata.csv", header = T) # 导入数据集
View(migrata) # 查看数据集。检查Predictor变量。有两个,时间和温度

查看数据集后,为了专注于研究的第一部分,我们可以筛选出Predictor为“year”的行,即仅关注随时间测量的年度到达日期的数据。

此时,AI 会解释说,library()函数用于加载所需的包,read.csv()函数用于读取 CSV 格式的数据文件,View()函数可以让你在数据查看器中直观地查看数据内容。

  1. 数据筛选:继续向 AI 提问,例如:“我只想分析 Predictor 为‘year’的数据,该怎么做?” AI 会给出以下代码:

migrata%>%filter(Predictor == "year") -> migrationtime # 这将数据集简化为一个预测变量,时间

在开始建模之前,绘制数据是很有帮助的。漏斗图通常用于可视化元分析的数据,通过将预测变量与每个数据点的1/标准误差绘制在一起,根据精度对每个研究进行加权,标准误差高的研究权重较低。

并解释dplyr包中的filter()函数用于根据条件筛选数据,这里筛选出了 Predictor 变量值为“year”的行,并将结果存储在migrationtime变量中。

  1. 数据可视化(漏斗图绘制):询问 AI 如何绘制漏斗图来可视化数据,AI会回复:


从漏斗图中可以看出,数据似乎在零附近聚集,并且正值和负值都有很好的表示,说明该研究没有受到发表偏倚的影响。进一步放大查看,可以更清楚地看到真实值似乎在零的左侧聚集,并且周围有相当大的变化。


点击标题查阅往期内容

图片

R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)

outside_default.png

左右滑动查看更多

outside_default.png

01

图片

02

图片

03

图片

04

图片

解释plot()函数用于绘制图形,这里将Slope变量作为 x 轴,1/SE(精度)作为 y 轴绘制了漏斗图,以根据精度对每个研究进行加权。
如果你想进一步调整图形的范围,如 x 轴和 y 轴的范围,可以继续向 AI 提问:我希望你能扮演一名数据分析师。我有一个名为‘midata’的数据集,包含‘Slope’和‘SE’列。请绘制一个散点图,x 轴为‘Slope’,y 轴为‘1/SE’,并添加图表标题和轴标签,AI 会给出: 


接下来,我们运行一个随机效应模型,仅将截距作为固定效应。截距将估计所有数据点的到达日期的平均变化,随机效应将估计截距周围是否存在真实变化,以及有多少变化可以由物种、位置或研究的效应来解释。

  1. 模型构建(随机效应模型):向 AI 询问如何构建一个仅包含截距作为固定效应的随机效应模型,AI 会提供:

运行模型后,我们得到了一个估计参数的分布,因为运行了13000次模型迭代,并采样了1000次以提供后验分布。通过查看summary(randomtest)的摘要统计信息,我们可以看到每个效应的后验均值、分布的95%可信区间(不是置信区间)、有效样本大小以及固定效应的pMCMC值。
有效样本大小应该相当高(通常目标是1000-2000),更复杂的模型通常需要更多的迭代来达到可比的有效样本大小。

六、模型评估

(一)显著性评估

对于固定效应,当可信区间不跨越零时,我们可以认为该固定效应是显著的,因为如果后验分布跨越零,我们就不能确定它不是零。虽然会报告pMCMC值,但更应关注可信区间。理想情况下,后验分布应该很窄,表明该参数值被精确估计。
对于随机效应,我们估计方差。由于方差不能为零或负数,当方差的分布不接近零时,我们认为随机效应是显著的。可以通过绘制每个后验分布的直方图来检查这一点。

解释函数用于构建模型,Slope ~ 1表示只有截距作为固定效应,random = ~Species + Location + Study指定了随机效应为SpeciesLocationStudydata = migrationtime指定了使用的数据集。summary()函数用于查看模型的摘要统计信息。

  1. 模型评估 - 显著性评估:询问 AI 如何评估模型中固定效应和随机效应的显著性,AI 会回复:


从直方图中可以看出,位置和物种的方差分布接近零,对于随机效应要显著,我们希望其尾部远离零。

(二)模型收敛评估

检查模型收敛需要分别对固定效应和随机效应进行。对于固定效应,可以绘制randomtest$Sol来查看截距的轨迹和密度估计。轨迹类似于模型运行时的时间序列,可用于评估混合(或收敛)情况,而密度类似于模型每次迭代产生的后验分布估计的平滑直方图。

解释对于固定效应,当可信区间不跨越零时,认为该固定效应显著;对于随机效应,通过绘制方差的后验分布直方图来评估,当方差的分布不接近零时,认为随机效应显著。上述代码使用par()函数设置绘图布局,hist()函数绘制直方图,mcmc()函数用于处理模型的输出数据。

  1. 模型评估 - 收敛评估:AI 会给出:


为了确保模型已经收敛,轨迹图应该看起来像一只模糊的毛毛虫,从图中可以看出截距的混合情况良好。
如果怀疑存在过多的自相关,可以采取以下措施:

  1. 增加迭代次数,默认值为13000(例如nitt = 60000,对于更复杂的模型,可能需要使用几十万次迭代)。

  2. 增加燃烧期,默认情况下MCMCglmm会忽略前3000次迭代,因为此时模型尚未收敛,可以增加这个值(例如burnin = 5000)。

  3. 增加抽样间隔,默认值为10(例如thin = 30)。

  4. 考虑使用更强的先验。
    对于随机效应的方差,同样绘制randomtest$VCV进行检查。根据电脑和屏幕的情况,可能会收到绘图太大无法显示的错误消息,可以通过向上和向左拖动绘图面板来扩大它,以便绘图有足够的空间显示。


从图中可以看出,一些随机效应的方差混合得不太好,有效样本大小也很小。可能需要增加迭代次数,但由于链似乎停留在零附近,看起来需要使用比默认值更强的先验。

七、先验知识

贝叶斯分析中最困难的部分是如何拟合正确的先验。先验是对我们认为参数的均值和/或方差可能是什么的先验知识的数学量化。我们为每个固定效应、随机效应和残差分别拟合一个先验。
先验可以用来告知模型我们认为后验分布将采取的形状。先验的信息性可以有所不同,弱信息先验用于我们没有太多先验知识并且希望数据自己说话的情况,它不会将后验分布从数据表明可能的参数值上拉开。信息性先验提供对模型估计至关重要的信息,并会在很大程度上影响后验分布的形状。
每个先验都遵循类似的公式,其是强信息还是弱信息取决于所包含的值。需要注意的是,没有完全无信息的先验。
默认先验假设固定效应的后验分布为正态分布,方差非常大,而对于随机效应的方差,实现了逆Wishart先验。逆Wishart先验包含方差矩阵V和置信度参数nu
随着模型变得更加复杂,更有可能最终收到错误消息,或者模型从一开始就无法混合。在这种情况下,我们应该使用自己的参数扩展先验。参数扩展意味着先验不再是逆Wishart先验,而是缩放F先验(如果不理解也不用担心)。这不一定是坏事,因为参数扩展先验比逆Wishart先验更不容易指定错误。

八、参数扩展先验和测量误差

我们再次运行模型,但这次为随机效应使用参数扩展先验,通过包含prior = prior1。每个随机效应由一个G表示,残差由R表示。参数扩展是指我们包含了先验均值(alpha.mu)和(协)方差矩阵(alpha.V)以及Vnu

先验知识与参数扩展先验:向 AI 询问,AI 会提供以下代码示例及解释: 

这里增加了迭代次数到60000,以改善混合和有效样本大小。由于MCMC的随机性,每次重新运行模型时,输出都会略有不同,因此即使在模型中使用相同的效应,结果也会与这里打印的内容略有不同。
检查有效样本大小,发现现在有效样本大小大了很多,这是一个好迹象。再次绘制随机效应的方差图,发现模型的混合情况也更好了。
在进行模型检查之前,我们希望在模型中控制抽样误差,这是使用MCMCglmm进行元分析而不是其他程序或包的关键原因之一。通过拟合idh(SE):units作为随机效应并将相关方差固定为1,可以使用一个计算技巧来实现这一点。

控制测量误差:AI 会给出: 

检查摘要统计信息,可以看到包含测量误差后,我们的估计更加保守,标准误差较高的研究被赋予了较低的统计权重。
为了进行模型检查,我们根据相同的参数值(方差/协方差结构(先验))模拟新数据,然后将其与实际数据进行绘图,以确保它们重叠。

模型检查:AI 会回复: 


从图中可以看出,模拟数据与实际数据的拟合情况还算合理,尽管模拟数据可能稍微向左倾斜。
这里的问题比较复杂,但我们可以尝试分析一下。问题在于,低精度估计的抽样方差实际上高于SE2SE2(即元分析的假设不成立)。这意味着a) 仍然对低精度研究给予了过多的权重;b) 一些生物变异(单位方差)被高估了;c) 如果发表偏倚在低精度研究中更有可能发生,那么平均效应大小可能会有偏差。
一个快速的解决方案是查看观察间方差是否随着报告的标准误差的增加而比预期更快地增加。为此,我们可以估计方差,而不是假设它为1,并查看估计值是否大于1。
让我们重新运行模型,但这次更改测量误差的先验,使其不再固定为1。

现在我们可以再次模拟新数据,并将其与我们收集的数据进行绘图。


这些参数似乎更适合我们的数据。

九、其他内容

其他分析(固定效应、计算后验均值、非高斯族、协方差结构等):根据你的具体需求,向 AI 提问关于其他分析的问题,例如:

  • “如何在模型中添加固定效应?”

  • “如何计算随机效应的后验均值?”

  • “如何处理非高斯族数据?”

  • “如何构建协方差结构?”
    AI 会根据你的问题提供相应的代码和解释,你只需按照提示在 R 语言中运行代码并理解其含义即可。

(一)固定效应

除了随机效应,还可以拟合固定效应。MCMCglmm估计随机效应的方式与固定效应类似,但在随机效应元分析中,分析师通常关注的是方差。

需要注意的是,对于固定效应,可能需要根据具体项目研究是否需要更改先验。

(二)计算随机效应的后验均值

MCMCglmm估计随机效应的方差和每个类别内的真实效应大小,但报告随机效应的方差比报告每个效应大小更有信息性。当使用summary()时,R会报告随机效应的方差和可信区间,但不会报告效应大小。然而,可以保存这些效应大小的后验模式并在工作中报告,但绝不能对其进行进一步的统计分析,并始终确保让读者知道预测的来源。

(三)非高斯族

本教程基于使用高斯分布,但MCMCglmm也可以处理非高斯族。通过指定family=来选择正确的分布。

(四)计算95%可信区间

可以使用interval(mcmc())来绘制或报告模型的可信区间,而无需直接从摘要中提取数字。

上述代码的结果应该与查看摘要时截距的后验分布的95%可信区间的数值相似。当想要组合效应时,interval特别有用。例如,若想知道来自欧洲的短距离迁徙者的后验分布的均值以及上下95%可信区间,可以像下面这样操作:

这些数值随后可用于绘图、报告等用途。

(五)(协)方差结构

到目前为止,我们了解到对于模型中的每个随机效应和残差,MCMCglmm会估计该效应内的方差,即方差在一个1x1的矩阵 - [_V_]中。然而,如果我们有需求,可以重新构建随机效应和残差内的方差矩阵。
举个例子,在之前的模型中,我们假设所有到达日期的测量方式都是相同的,但实际上,它有三种不同的测量方式:首先是到达的平均日期和中位数日期,峰值到达也作为一个类别包含在内,不过没有包含该类别的行。

因此,我们的残差方差是异质的,需要在模型中考虑到这一点。我们可以通过在rcov中使用idh():units函数来实现。由于我们希望分别估计每个水平的方差,所以必须更改残差先验的方差结构。在这种情况下,我们使用一个3x3的方差矩阵,因为有三种类型的响应。

如果只是在R控制台中运行prior4,应该能够更轻松地可视化残差先验的矩阵。

现在,当我们打印摘要时可以看到,已经为所有三种到达测量方式估计了残差方差,这是一个成功的结果。
最后,除了使用方差矩阵,还可以使用协方差矩阵,将idh()替换为us()。在这种情况下,需要更新效应的先验。例如,如果有三个水平,则需要将矩阵的大小增加到3。

十、结论

本论文详细介绍了使用R+AI提示词工程进行元分析的相关内容,从元分析的基本概念、基于贝叶斯框架的工作原理,到模型的构建、运行、评估以及各种高级应用,如先验的选择、测量误差的控制和方差结构的处理等。

e740175048d25aaed83f42bd89cf0cd7.jpeg

本文中分析的完整数据、代码、文档分享到会员群,扫描下面二维码即可加群! 

b3e60184a6a1e74854cff9f1839532ba.png


资料获取

在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

6cd4b85bf972a8411d9a62645cb8cd08.jpeg

点击文末“阅读原文”

获取完整代码、数据、文档。

本文选自《R语言+AI提示词:贝叶斯广义线性混合效应模型GLMM生物学Meta分析》。

点击标题查阅往期内容

R语言广义线性混合模型GLMMs在生态学中应用可视化2实例合集|附数据代码

R语言用潜类别混合效应模型(Latent Class Mixed Model ,LCMM)分析老年痴呆年龄数据

R语言贝叶斯广义线性混合(多层次/水平/嵌套)模型GLMM、逻辑回归分析教育留级影响因素数据

R语言估计多元标记的潜过程混合效应模型(lcmm)分析心理测试的认知过程

R语言因子实验设计nlme拟合非线性混合模型分析有机农业施氮水平

R语言非线性混合效应 NLME模型(固定效应&随机效应)对抗哮喘药物茶碱动力学研究

R语言用线性混合效应(多水平/层次/嵌套)模型分析声调高低与礼貌态度的关系

R语言LME4混合效应模型研究教师的受欢迎程度

R语言nlme、nlmer、lme4用(非)线性混合模型non-linear mixed model分析藻类数据实例

R语言混合线性模型、多层次模型、回归模型分析学生平均成绩GPA和可视化

R语言线性混合效应模型(固定效应&随机效应)和交互可视化3案例

R语言用lme4多层次(混合效应)广义线性模型(GLM),逻辑回归分析教育留级调查数据

R语言 线性混合效应模型实战案例

R语言混合效应逻辑回归(mixed effects logistic)模型分析肺癌数据

R语言如何用潜类别混合效应模型(LCMM)分析抑郁症状

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言建立和可视化混合效应模型mixed effect model

R语言LME4混合效应模型研究教师的受欢迎程度

R语言 线性混合效应模型实战案例

R语言用Rshiny探索lme4广义线性混合模型(GLMM)和线性混合模型(LMM)

R语言基于copula的贝叶斯分层混合模型的诊断准确性研究

R语言如何解决线性混合模型中畸形拟合(Singular fit)的问题

基于R语言的lmer混合线性回归模型

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

R语言分层线性模型案例

R语言用WinBUGS 软件对学术能力测验(SAT)建立分层模型

使用SAS,Stata,HLM,R,SPSS和Mplus的分层线性模型HLM

R语言用WinBUGS 软件对学术能力测验建立层次(分层)贝叶斯模型

SPSS中的多层(等级)线性模型Multilevel linear models研究整容手术数据

用SPSS估计HLM多层(层次)线性模型模型 

c46f48a2cce7d6735ccfe0717ae1ddb7.jpeg

9ad7e7a2889f17fa571d20931df78a1c.png

593c2674f43c238a31ea83073e40d92b.png

a90706749e363979ecf443dfe06fb415.jpeg

319d30ee38be80e86946af687559f467.png

相关文章:

R语言+AI提示词:贝叶斯广义线性混合效应模型GLMM生物学Meta分析

全文链接&#xff1a;https://tecdat.cn/?p40797 本文旨在帮助0基础或只有简单编程基础的研究学者&#xff0c;通过 AI 的提示词工程&#xff0c;使用 R 语言完成元分析&#xff0c;包括数据处理、模型构建、评估以及结果解读等步骤&#xff08;点击文末“阅读原文”获取完整代…...

LangChain原理解析及开发实战指南(2025年最新版)

一、LangChain核心架构解析 1.1 框架设计理念 LangChain是基于提示工程(Prompt Engineering)构建的LLM应用开发框架&#xff0c;其核心思想是通过模块化组件实现大语言模型与业务系统的无缝对接。该框架采用分层设计&#xff1a; 接口层&#xff1a;统一对接OpenAI、DeepSee…...

赋能农业数字化转型 雏森科技助力“聚农拼”平台建设

赋能农业数字化转型&#xff0c;雏森科技助力“聚农拼”平台建设 在数字化浪潮席卷各行业的今天&#xff0c;农业领域也在积极探索转型升级之路。中农集团一直以“根植大地&#xff0c;服务三农”为核心&#xff0c;以“乡村振兴&#xff0c;农民增收”为目标&#xff0c;及时…...

CMU15445(2023fall) Project #2 - Extendible Hash Index 匠心分析

胡未灭&#xff0c;鬓已秋&#xff0c;泪空流 此生谁料 心在天山 身老沧州 ——诉衷情 完整代码见&#xff1a; SnowLegend-star/CMU15445-2023fall: Having Conquered the Loftiest Peak, We Stand But a Step Away from Victory in This Stage. With unwavering determinati…...

深度剖析Seata源码:解锁分布式事务处理的核心逻辑

文章目录 写在文章开头如何使用源码(配置转掉)基于AT模式详解Seata全链路流程Seata服务端启动本地服务如何基于GlobalTransaction注解开启事务客户端如何开启分布式事务RM和TC如何协调处理分支事务RM生成回滚日志事务全局提交与回滚小结参考写在文章开头 在当今分布式系统日益…...

python配置mmcv与mmdet环境

首先查看自己的cuda版本 nvcc --version 安装与cuda对应的torch版本&#xff0c;对应关系 Previous PyTorch Versions | PyTorch 安装对应的mmcv版本&#xff0c;使用下面命令可以自动安装匹配的版本&#xff0c;使用mim安装 mim install mmcv-full -f https://download.o…...

ESP 32控制无刷电机2

import machine import time import socket import network from machine import I2C, Pin, ADC def start_ap(): """ 启动ESP32的AP模式 """ ap network.WLAN(network.AP_IF) ap.active(True) ssid ESP32_APTest …...

【uniapp原生】实时记录接口请求延迟,并生成写入文件到安卓设备

在开发实时数据监控应用时&#xff0c;记录接口请求的延迟对于性能分析和用户体验优化至关重要。本文将基于 UniApp 框架&#xff0c;介绍如何实现一个实时记录接口请求延迟的功能&#xff0c;并深入解析相关代码的实现细节。 前期准备&必要的理解 1. 功能概述 该功能的…...

wps角标快速生成

使用^#符号匹配数字&#xff0c;将[^#]内容找到&#xff0c;随后在格式-字体中选择上标&#xff0c;逐个/批量替换即可&#xff08;比一点点改效率翻倍&#xff09;...

Azure Speech

1、文字转语音(Text-To-Speech, TTS) 2、语音转文字(Speech-To-Text): Azure Speech to Text 1- 环境配置&#xff1a;Microsoft Azure 注册使用免费服务&#xff1a; 需要信用卡&#xff0c;本人没有&#xff0c;所以没有完成注册...

SHELL32!ILCombine函数分析之连接两个idl

SHELL32!ILCombine函数分析之连接两个idl 第一部分&#xff1a; STDAPI_(LPITEMIDLIST) ILCombine(LPCITEMIDLIST pidl1, LPCITEMIDLIST pidl2) { // Let me pass in NULL pointers if (!pidl1) { if (!pidl2) { return NULL; …...

学习threejs,使用ShaderMaterial自定义着色器材质

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.ShaderMaterial1.1.1…...

使用 Selenium 和 Requests 自动化获取动态 Referer 和 Sign 的完整指南

在现代网络爬虫和自动化任务中&#xff0c;动态生成的参数&#xff08;如 Referer 和 Sign&#xff09;常常是绕过反爬虫机制的关键。本文将详细介绍如何使用 Python 的 Selenium 和 Requests 库&#xff0c;从目标网页中提取动态 Referer 和 Sign&#xff0c;并完成后续的请求…...

1.2.3 使用Spring Initializr方式构建Spring Boot项目

本实战概述介绍了如何使用Spring Initializr创建Spring Boot项目&#xff0c;并进行基本配置。首先&#xff0c;通过Spring Initializr生成项目骨架&#xff0c;然后创建控制器HelloController&#xff0c;定义处理GET请求的方法hello&#xff0c;返回HTML字符串。接着&#xf…...

Cursor+pycharm接入Codeuim(免费版),Tab自动补全功能平替

如题&#xff0c;笔者在Cursor中使用pycharm写python程序&#xff0c;试用期到了Tab自动补全功能就不能用了&#xff0c;安装Codeuim插件可以代替这个功能。步骤如下&#xff1a; 1. 在应用商店中搜索扩展Codeuim&#xff0c;下载安装 2. 安装完成后左下角会弹出提示框&#x…...

Ruby基础

一、字符串 定义 283.to_s //转为string "something#{a}" //定义字符串&#xff0c;并且插入a变量的值 something//单引号定义变量 %q(aaaaaaaaa) // 定义字符串&#xff0c;&#xff08;&#xff09;内可以是任何数&#xff0c;自动转义双引号%Q("aaaaa"…...

wzl-django学习

####################################################总的urls.py from django.contrib import admin from django.urls import path,include, re_path from django.views.static import serve from django.conf import settings from drf_yasg import openapi from drf_yas…...

《AI强化学习:元应用中用户行为引导的智能引擎》

在科技飞速发展的当下&#xff0c;元应用正以前所未有的速度融入我们的生活&#xff0c;从沉浸式的虚拟社交到高度仿真的工作模拟&#xff0c;元应用构建出一个个丰富多彩的虚拟世界。而在这背后&#xff0c;人工智能的强化学习技术宛如一位无形却强大的幕后推手&#xff0c;深…...

Django基础环境准备

Django基础环境准备 文章目录 Django基础环境准备1.准备的环境 win11系统&#xff08;运用虚拟环境搭建&#xff09;1.1详见我的资源win11环境搭建 2.准备python环境2.1 winr 打开命令提示符 输入cmd 进入控制台2.2 输入python --version 查看是否有python环境2.3在pyhton官网下…...

机器视觉线阵相机分时频闪选型/机器视觉线阵相机分时频闪选型

在机器视觉系统中,线阵相机的分时频闪技术通过单次扫描切换不同光源或亮度,实现在一幅图像中捕捉多角度光照效果,从而提升缺陷检测效率并降低成本。以下是分时频闪线阵相机的选型要点及关键考量因素: 一、分时频闪技术的核心需求 多光源同步控制 分时频闪需相机支持多路光源…...

【企业场景】上线的项目如何进行限流

一、常见的四种速率限流算法 对于限流&#xff0c;最为直接的就是速率限流了 固定窗口算法 比如 10r/s 就是把时间线分为 1s 一段&#xff0c;也就是周期为 1s&#xff0c;对一个时间段的请求进行计数&#xff0c;超过 10 则舍弃&#xff0c;未超过则直接处理经过 1s 后&…...

【FL0090】基于SSM和微信小程序的球馆预约系统

&#x1f9d1;‍&#x1f4bb;博主介绍&#x1f9d1;‍&#x1f4bb; 全网粉丝10W,CSDN全栈领域优质创作者&#xff0c;博客之星、掘金/知乎/b站/华为云/阿里云等平台优质作者、专注于Java、小程序/APP、python、大数据等技术领域和毕业项目实战&#xff0c;以及程序定制化开发…...

用大白话解释缓存Redis +MongoDB是什么有什么用怎么用

Redis和MongoDB是什么&#xff1f; Redis&#xff1a;像你家的“小冰箱”&#xff0c;专门存高频使用的食物&#xff08;数据&#xff09;。它是基于内存的键值数据库&#xff0c;读写速度极快&#xff08;每秒超10万次操作&#xff09;。比如你每次打开手机App&#xff0c;用…...

软件测试需求分析如何实施?专业软件测试服务公司分享

在现代软件开发中&#xff0c;软件测试需求分析被认为是确保软件质量的关键环节之一。软件测试需求分析是指在软件开发过程中&#xff0c;对测试需求进行系统性分析的过程。它旨在确定软件系统功能、性能及其他非功能性需求的具体细节&#xff0c;从而为后续的测试活动提供指导…...

pg pg_prewarm用法

按照插件 > create extension pg_prewarm ;缓存表 > test# select pg_prewarm(weather,buffer ) ; pg_prewarm > ------------ > 1缓存表部分内容 test# select pg_prewarm(weather,buffer,main,0,0) ;pg_prewarm ------------1 (1 row)表大小只有0号…...

2025年光电科学与智能传感国际学术会议(ICOIS 2025)

重要信息 官网&#xff1a;www.ic-icois.org 时间&#xff1a;2025年3月14-16日 地点&#xff1a;中国-长春 简介 2025年光电科学与智能传感国际学术会议&#xff08;ICOIS 2025&#xff09;将于2025年3月14-16日在中国-长春隆重召开。会议将围绕“光学光电”、“智能传感”…...

uni小程序wx.switchTab有时候跳转错误tab问题,解决办法

在一个子页面里面使用uni.switchTab或者wx.switchTab跳转到tab菜单的时候&#xff0c;先发送了一个请求&#xff0c;然后执行跳转到tab菜单&#xff0c;但是这个时候&#xff0c;出错了........也是非常的奇怪&#xff0c;不加请求就没问题......但是业务逻辑就是要先执行某个请…...

python-leetcode-下一个排列

31. 下一个排列 - 力扣&#xff08;LeetCode&#xff09; class Solution:def nextPermutation(self, nums: List[int]) -> None:"""Do not return anything, modify nums in-place instead."""# Step 1: Find the first decreasing element …...

如何获取mac os 安装盘

发现虚拟机VirtualBox支持Mac虚拟&#xff0c;就想尝试一下。但是发现Mac的安装盘特别难拿到&#xff0c;因此留档。 第一种方法 在mac环境下&#xff0c;使用softwareupdate命令来获取mac安装&#xff0c;能获得当前设备支持的系统。 使用这个命令&#xff1a;/usr/sbin/soft…...

常见AI写作工具介绍(ChatGPT 4o、DeepClaude、Claude 3.5 Sonnet 、DeepSeek R1等)

AI写作工具介绍 1. ChatGPT-4o ChatGPT-4o是OpenAI于2024年5月发布的最新旗舰模型&#xff0c;相比之前的版本&#xff0c;它在多模态支持和实时推理能力上有了显著提升。它能够处理和理解音频、图像和文本数据&#xff0c;适用于复杂的图像分析、语音识别等应用场景[1]。 2…...

环境会影响你的决策:K近邻算法(KNN)

环境会影响你的决策&#xff1a;K近邻算法&#xff08;KNN) 1. 核心思想与流程 KNN是一种基于局部相似性的分类算法&#xff0c;核心思想是“近朱者赤”&#xff1a;待测样本的类别由其最近的k个邻居的多数类别决定。 关键步骤&#xff1a; 定义空间与距离&#xff1a;通常采…...

JMeter 中实现 100 个用户在 3 秒内并发登录

在 JMeter 中实现 100 个用户在 3 秒内并发登录,需要合理配置线程组、定时器和测试逻辑。以下是具体步骤: 1. 创建测试计划 打开 JMeter。右键点击“Test Plan”,选择 Add > Threads (Users) > Thread Group。 : 设置为 100(模拟 100 个用户)。 : 设置为 3...

2-3文件的属性信息

文章目录 1 file命令2 stat命令 1 file命令 用来识别文件类型 # 参数的位置是任意的 file 文件名 [参数]-b 只显示文件类型和文件编码&#xff0c;不显示文件名-i 显示文件的MIME类型-F 设置输出字符串的分隔符-L 查看软链接文件自身文件属性liyblyb:/tmp$ file xxxtmp.log …...

【云原生之kubernetes实战】在k8s环境中高效部署Vikunja任务管理工具(含数据库配置)

【【云原生之kubernetes实战】在k8s环境中高效部署Vikunja任务管理工具(含数据库配置) 前言一、Vikunja介绍1.1 Vikunja简介1.2 Vikunja主要特点1.3 使用场景二、相关知识介绍2.1 本次实践存储介绍2.2 k8s存储介绍三、本次实践介绍3.1 本次实践简介3.2 本次环境规划3.3 部署前…...

(IDE接入DeepSeek)简单了解DeepSeek接入辅助开发与本地部署建议

重点&#xff1a;IDE接入DeepSeek是否收费 收费&#xff01; 本文章主要是为了给小白避雷&#xff0c;目前很多文章告诉大家怎么接入DeepSeek&#xff0c;但是并未告知大家是否收费。如果是想白嫖的&#xff0c;就可以不用去接入了。 一、引言 最近爆火的AI人工智能工具DeepSe…...

TCP的三次握手与四次挥手:建立与终止连接的关键步骤

引言 ‌TCP&#xff08;传输控制协议&#xff09;工作在OSI模型的传输层‌。OSI模型将计算机网络功能划分为七个层级&#xff0c;从底层到顶层依次是&#xff1a;物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。传输层负责在网络节点之间提供可靠的端到端通信&a…...

CMU15445(2023fall) Project #3 - Query Execution(上)详细分析

晚日寒鸦一片愁 柳塘新绿却温柔 若教眼底无离恨 不信人间有白头 ——鹧鸪天 完整代码见&#xff1a; SnowLegend-star/CMU15445-2023fall: Having Conquered the Loftiest Peak, We Stand But a Step Away from Victory in This Stage. With unwavering determination, we pre…...

.sql文件怎么打开

.sql 文件是一个 SQL 脚本文件&#xff0c;通常包含了数据库的 SQL 查询语句&#xff0c;可以是创建数据库、创建表、插入数据、查询数据等操作。要打开并查看 .sql 文件&#xff0c;你可以使用以下几种方法&#xff1a; 1. 使用文本编辑器打开 .sql 文件是一个文本文件&…...

【Swift 算法实战】城市天际线问题解法

网罗开发 &#xff08;小红书、快手、视频号同名&#xff09; 大家好&#xff0c;我是 展菲&#xff0c;目前在上市企业从事人工智能项目研发管理工作&#xff0c;平时热衷于分享各种编程领域的软硬技能知识以及前沿技术&#xff0c;包括iOS、前端、Harmony OS、Java、Python等…...

Linux的软件安装

Linux命令行内的“应用商店” yum命令安装软件。 yum命令&#xff1a; yum&#xff1a;RPM软件管理器&#xff0c;用于自动化安装配置Linux软件&#xff0c;可以自动解决依赖问题。 语法&#xff1a;yum [-y] [install | remove | search] 软件名称 选项&#xff1a;-y。自动确…...

需求和开发模型

文章目录 什么是需求&#xff1f;用户需求软件需求用户需求和软件需求的不同 开发模型什么是“模型”&#xff1f;软件的生命周期常见的开发模型瀑布模型&#xff08;Waterfall Model&#xff09;螺旋模型增量模型、迭代模型敏捷模型 测试模型V 模型W 模型&#xff08;双 V 模型…...

unity学习61:UI布局layout

目录 1 布局 layout 1.1 先准备测试UI,新增这样一组 panel 和 image 1.2 新增 vertical layout 1.3 现在移动任意一个image 都会影响其他 1.3.1 对比 如果没有这个&#xff0c;就会是覆盖效果了 1.3.2 对比 如果没有这个&#xff0c;就会是覆盖效果了 1.4 总结&#xf…...

腾讯混元文生图大模型(Hunyuan-DiT)与Stable Diffusion(SD)对比分析

腾讯混元文生图大模型&#xff08;Hunyuan-DiT&#xff09;与Stable Diffusion&#xff08;SD&#xff09;对比分析 腾讯混元文生图大模型&#xff08;Hunyuan-DiT&#xff09;与Stable Diffusion&#xff08;SD&#xff09;作为当前文生图领域的两大代表模型&#xff0c;各自…...

Flume

Flume安装配置 使用的三台主机名称分别为bigdata1&#xff0c;bigdata2&#xff0c;bigdata3。所使用的安装包名称按自己的修改&#xff0c;安装包可去各大官网上下载 1.解压 将Master节点Flume安装包解压到/opt/module目录下 tar -zxvf /opt/software/apache-flume-1.9.0-bi…...

【Python LeetCode】面试经典 150 题

数组 / 字符串快慢指针&#xff08;双指针&#xff09;总结88. 合并两个有序数组27. 移除元素26. 删除有序数组中的重复项80. 删除有序数组中的重复项 II Boyer-Moore 投票算法169. 多数元素扩展&#xff1a;寻找 n/3 多数元素 翻转法189. 轮转数组 贪心121. 买卖股票的最佳时机…...

营养助力:进行性核上性麻痹患者的饮食管理

进行性核上性麻痹是一种复杂的神经系统退行性疾病&#xff0c;科学的饮食管理不仅能够改善患者的营养状况&#xff0c;还能为神经系统提供必要的支持&#xff0c;延缓病情进展。 这种疾病会导致吞咽困难、营养吸收障碍等问题&#xff0c;增加营养不良的风险。针对性的饮食调理能…...

spineNET模型详解及代码复现

模型背景 在SpineNet模型诞生之前,多尺度特征融合已成为计算机视觉领域的研究热点。研究者们提出了各种方法来处理不同尺度的特征,如 特征金字塔网络(FPN) 和 深度可分离卷积 。然而,这些方法在跨尺度特征融合方面仍存在局限性。 FPN通过自上而下的路径融合不同尺度的特…...

【Mybatis】如何简单使用mybatis-plus,以及MybatisGenerator自动生成或者实现SQL语句

前言 &#x1f31f;&#x1f31f;本期讲解关于mybatis中SQL自动生成的相关知识介绍~~~ &#x1f308;感兴趣的小伙伴看一看小编主页&#xff1a;GGBondlctrl-CSDN博客 &#x1f525; 你的点赞就是小编不断更新的最大动力 &#x1f386;…...

ds-国内主要显卡

国产显卡 寒武纪思元系列 思元 370&#xff1a;采用 7nm 制程工艺及 chiplet 技术&#xff0c;集成 390 亿个晶体管&#xff0c;最大算力高达 256TOPS&#xff08;INT8&#xff09;。是国内第一款公开发布支持 LPDDR5 内存的云端 AI 芯片&#xff0c;内存带宽是上一代产品的 3 …...

类和对象——const修饰的类的对象和函数

const修饰的类的对象和函数 const成员函数和const对象1 const成员函数2 调用关系3 const在成员函数中的位置4 取地址&及const取地址操作符重载 const成员函数和const对象 1 const成员函数 将const修饰的“成员函数”称之为const成员函数&#xff0c;const修饰类成员函数&…...