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

【时间序列分析】斯皮尔曼(Spearman)相关系数理论基础及python代码实现

文章目录

  • 1. 斯皮尔曼相关系数
    • 1.1 公式定义
    • 1.2 计算过程
    • 1.3 计算示例
    • 1.4 注意事项(当有重复值时)
  • 2. 优缺点
    • 2.1 优点
    • 2.2 缺点
  • 3. 适用场景
  • 4. Python代码实现
    • 4.1 调用scipy库
  • 5 思考
    • 5.1 什么是单调关系?与线性关系的区别是什么?
    • 5.2 斯皮尔曼相关系数如何度量单调关系?

1. 斯皮尔曼相关系数

1.1 公式定义

什么是秩相关系数?

秩相关系数(Coefficient of Rank Correlation),又称等级相关系数,反映两个随机变量变化趋势的方向和强度之间的关系。它通过将两个随机变量的样本值按大小顺序排列位次,使用这些位次代替实际数据来计算得出。秩相关系数用于衡量变量间的等级相关程度,常用的等级相关分析方法包括Spearman相关系数和Kendall秩相关系数等。

斯皮尔曼相关系数(Spearman’s Rank Correlation Coefficient)是通过比较两个变量的排名来计算相关性的,而不是直接使用原始值。它的核心思想是,两个变量如果具有单调关系(即随着一个变量的增加,另一个变量也按某种规律增加或减少),那么它们的排名应该是相关的。

斯皮尔曼相关系数的计算公式为:

R s = 1 − 6 ∑ d i 2 n ( n 2 − 1 ) R_s = 1 - \frac{6 \sum d_i^2}{n(n^2 - 1)} Rs=1n(n21)6di2

其中:

  • R s : R_s: Rs: 是斯皮尔曼相关系数
  • d i = R ( X i ) − R ( Y i ) d_i=R(X_i)-R(Y_i) di=R(Xi)R(Yi) 是第 i i i 个数据点在 X X X Y Y Y 两个变量的排名差异
  • n n n 是数据点的数量
  • R ( X i ) R(X_i) R(Xi) R ( Y i ) R(Y_i) R(Yi) 分别是 X X X Y Y Y 在第 i i i 个数据点的排名

取值范围 [ 0 , 1 ] [0,1] [0,1]

  • R s = 1 R_s =1 Rs=1 表示完美的正单调关系,即两个变量的排序完全一致。也就是说,随着一个变量的增大,另一个变量也始终按相同的顺序增大
  • R s = − 1 R_s =-1 Rs=1 表示完美的负单调关系,即两个变量的排序完全相反。也就是说,随着一个变量的增大,另一个变量始终按相反的顺序减小
  • R s = 0 R_s =0 Rs=0 表示没有单调关系,即两个变量的排名没有任何一致性或依赖性,变化趋势完全独立
  • 0 < R s < 1 0<R_s<1 0<Rs<1 表示正单调关系,即随着一个变量的增加,另一个变量也倾向于增加,但不一定完全一致
  • − 1 < R s < 0 -1<R_s<0 1<Rs<0 表示负单调关系,即随着一个变量的增加,另一个变量倾向于减少,但不一定完全一致

1.2 计算过程

  • 数据排序: 为每个变量分配排名,从最小值 1 开始
  • 计算排名差异: 计算每个数据点在两个变量中的排名差 d i = R ( X i ) − R ( Y i ) d_i=R(X_i)-R(Y_i) di=R(Xi)R(Yi)
  • 平方差异: 计算每个排名差异的平方 d i 2 d_i^2 di2
  • 求和: 计算所有 d i 2 d_i^2 di2 的和 ∑ d i 2 \sum d_i^2 di2
  • 代入公式: 将求得的 ∑ d i 2 \sum d_i^2 di2 和数据点的数量 n n n 代入斯皮尔曼公式中,得到相关系数 R s R_s Rs

1.3 计算示例

假设我们现在有两个变量:

  • X = [ 86 , 82 , 94 , 79 , 88 ] X=[86, 82, 94, 79, 88] X=[86,82,94,79,88]
  • Y = [ 88 , 76 , 92 , 80 , 86 ] Y=[88, 76, 92, 80, 86] Y=[88,76,92,80,86]

按照从小到大排序得到 R ( X i ) R(X_i) R(Xi) R ( Y i ) R(Y_i) R(Yi)

  • R ( X i ) = [ 3 , 2 , 5 , 1 , 4 ] R(X_i)=[3,2,5,1,4] R(Xi)=[3,2,5,1,4]
  • R ( Y i ) = [ 4 , 1 , 5 , 2 , 3 ] R(Y_i)=[4,1,5,2,3] R(Yi)=[4,1,5,2,3]

计算 d i 2 d_i^2 di2 有:

  • d i 2 = [ 1 , 1 , 0 , 1 , 1 ] d_i^2 =[1,1,0,1,1] di2=[1,1,0,1,1]

计算斯皮尔曼相关系数 R s R_s Rs

  • R s = 1 − 6 ∗ 4 5 ∗ ( 5 2 − 1 ) = 0.8 R_s=1-\frac{6*4}{5*(5^2-1)} =0.8 Rs=15(521)64=0.8

1.4 注意事项(当有重复值时)

注意:当有两个或多个相同值时排名是通过分配给重复值的平均排名来处理的。举个例子:

X = [ 79 , 82 , 82 , 86 , 88 , 94 ] X=[79,82,82,86,88,94] X=[79,82,82,86,88,94]

接着为这些值分配排名:

  • 79 排名 1
  • 82 和 82 是相同的值,排名为 2 和 3,这两个值的排名是 2.5,因为它们共享第 2 和第 3 位,平均排名为 ( 2 + 3 ) / 2 = 2.5 (2+3)/2=2.5 (2+3)/2=2.5
  • 86 排名 4
  • 88 排名 5
  • 94 排名 6

综上所述:
R ( X i ) = [ 1 , 2.5 , 2.5 , 4 , 5 , 6 ] R(X_i) = [1, 2.5, 2.5 , 4,5 , 6] R(Xi)=[1,2.5,2.5,4,5,6]

2. 优缺点

2.1 优点

  • 非线性关系: 斯皮尔曼相关系数能够有效捕捉变量之间的单调关系,无论是线性还是非线性
  • 对异常值不敏感: 与皮尔森相关系数不同,斯皮尔曼相关系数对异常值不太敏感,因为它使用的是排名而不是原始数据值
  • 适用范围广: 适用于定序数据或顺序数据(如问卷调查中的满意度等级),并且不要求数据服从正态分布

2.2 缺点

  • 只考虑单调关系: 斯皮尔曼相关系数只能捕捉到单调关系,对于某些不满足单调性的数据,可能不适用
  • 可能丢失信息: 在排名过程中,数据的具体数值被转换为排名,这可能导致丢失部分信息,尤其是当数据变化不大时

3. 适用场景

  • 非线性关系分析: 当你怀疑两个变量之间有单调关系,但不一定是线性关系时,斯皮尔曼相关系数是一个很好的选择
  • 顺序数据: 适用于顺序数据(如等级评分),例如对学生成绩的排名,调查问卷的满意度评分等
  • 对异常值的容忍性: 如果数据集包含一些异常值,且这些异常值会影响到皮尔森相关系数的计算,斯皮尔曼相关系数是一个更稳健的选择

4. Python代码实现

4.1 调用scipy库

import numpy as np
from scipy.stats import spearmanrX = [86,82,94,79,88]
Y = [88,76,92,80,86]# r是斯皮尔曼系数, p 值是用来判断结果是否具有统计显著性的一个指标
r, p = spearmanr(X,Y)
print(r)
print(p)
  • r r r :斯皮尔曼系数
  • p p p p p p 值是用来判断结果是否具有统计显著性的一个指标,表示假设检验中观察到的结果或更极端的结果在零假设成立下出现的概率。在皮尔森、斯皮尔曼等相关系数的情况下,p 值用于检验相关性是否显著。
  • 如果 p p p 值较小(通常小于设定的显著性水平,如 0.05),说明结果具有统计显著性,即我们有足够的证据拒绝零假设(即假设两个变量之间没有关系)
  • 如果 p p p 值较大(大于显著性水平),则说明结果不显著,即没有足够的证据拒绝零假设,我们无法确认这两个变量之间是否存在显著的线性或单调关系

5 思考

5.1 什么是单调关系?与线性关系的区别是什么?

单调关系(Monotonic Relationship) 是指随着一个变量的增加或减少,另一个变量始终按照同样的方向增加或减少,不一定是线性关系。单调关系可以是 单调递增(monotonically increasing) 或 单调递减(monotonically decreasing),而不要求数据的变化遵循直线(线性)规律。

单调关系的定义:

  • 单调递增 : 如果 X X X 增加,那么 Y Y Y 也要增加;即 X 1 < X 2 X_1 < X_2 X1<X2 时,必有 Y 1 < = Y 2 Y_1 <= Y_2 Y1<=Y2 它不一定是直线关系,只要求随着 X X X 增加, Y Y Y 也要增加。
  • 单调递减 : 如果 X X X 增加,那么 Y Y Y 也要减少;即 X 1 < X 2 X_1 < X_2 X1<X2 时,必有 Y 1 > = Y 2 Y_1 >= Y_2 Y1>=Y2
  • 斯皮尔曼相关系数 专门用来度量两个变量之间的单调关系。它假设两个变量之间的关系是单调的,即随着一个变量的变化,另一个变量的排序变化(增加或减少)是保持一致的。然而,单调关系不要求这种关系是线性的。例如,即使关系是曲线(非线性)的,只要随着 X X X 增加, Y Y Y 始终保持增加或减小,斯皮尔曼相关系数仍然能捕捉到这种关系。

单调关系与线性关系的区别:

  • 线性关系: 要求两个变量之间的关系是直线性的,即可以用一个直线来描述它们的关系。比如 Y = a X + b Y=aX+b Y=aX+b
  • 单调关系: 不仅仅局限于直线关系,它可以是非线性的,只要随着一个变量的变化,另一个变量总是按照同样的方向变化

举个例子:

  • 单调递增关系: Y = X 2 Y=X^2 Y=X2 X > = 0 X>=0 X>=0 时是单调递增的,尽管他是非线性的,但是随着 X X X 的增大, Y Y Y 值始终增大
  • 单调递减关系:例如 Y = − l o g ( X ) Y=-log(X) Y=log(X),是单调递减的,但同样不是线性的

5.2 斯皮尔曼相关系数如何度量单调关系?

斯皮尔曼相关系数通过计算两个变量的排名差异来衡量它们之间的单调关系。如果两个变量的排名总是同步变化(即排名顺序保持一致),则它们的斯皮尔曼相关系数接近 1 或 -1,表示强单调关系。

例如:

  • 如果随着 X X X 增大, Y Y Y 的值始终增加或始终减少,那么它们之间的斯皮尔曼相关系数接近 1 或 -1
  • 如果随着 X X X 增大,并没有导致 Y Y Y 的值单调增减(即 X X X Y Y Y 变化方向不一致),那么斯皮尔曼相关系数接近 0

相关文章:

【时间序列分析】斯皮尔曼(Spearman)相关系数理论基础及python代码实现

文章目录 1. 斯皮尔曼相关系数1.1 公式定义1.2 计算过程1.3 计算示例1.4 注意事项&#xff08;当有重复值时&#xff09; 2. 优缺点2.1 优点2.2 缺点 3. 适用场景4. Python代码实现4.1 调用scipy库 5 思考5.1 什么是单调关系&#xff1f;与线性关系的区别是什么&#xff1f;5.2…...

python | linux | ModuleNotFoundError: No module named ‘WFlib‘ |找不到模块

问题&#xff1a; (base) beautyby521-7:~/Website-Fingerprinting-Library-master$ bash scripts/NetCLR.sh Traceback (most recent call last):File "/home/beauty/Website-Fingerprinting-Library-master/exp/pretrain.py", line 8, in <module>from WFli…...

B-TREE详解

B - tree 的详细结构特点 节点结构细节 关键字存储方式&#xff1a;B - tree 节点中的关键字是按照一定顺序排列的&#xff0c;这个顺序可以是升序或者降序。例如&#xff0c;在一个以数字为关键字的 B - tree 中&#xff0c;关键字从左到右依次增大。每个关键字都有一个分隔作…...

Kotlin复习

一、Kotlin类型 1.整数 2.浮点 显示转换&#xff1a; 所有数字类型都支持转换为其他类型&#xff0c;但是转换前会检测长度。 toByte(): Byte toShort(): Short toInt(): Int toLong(): Long toFloat(): Float toDouble(): Double 不同进制的数字表示方法&#xff08;为了提高…...

批处理文件的创建与编辑方法

批处理命令保存在以BAT为扩展名地文本文件中&#xff0c;因此可以使用任何字处理软件创建、编辑批处理文件&#xff0c;如Word、WinHex、Editpuls等。 案例一 使用copy con命令创建批处理文件 ”copy con“是一个功能简单、易于使用的创建文本文件命令&#xff0c;命令中”con…...

Spring Boot集成Kafka:最佳实践与详细指南

文章目录 一、生产者1.引入库2.配置文件3.配置类PublicConfig.javaMessageProducer.java 4.业务处理类 三、消费者1.引入库2.配置类PublicConfig.javaMessageConsumer.java 3.业务类 一、生产者 1.引入库 引入需要依赖的jar包&#xff0c;引入POM文件&#xff1a; <depend…...

maven 中 有历史模块缓存 怎么清

Maven 在运行时会将一些数据保存在本地仓库中&#xff0c;以加快构建过程。其中一部分是项目的依赖项&#xff0c;还有就是“历史模块缓存”。这些缓存信息保存在本地仓库的 _remote.repositories 文件中。 解决方案&#xff1a; 手动删除缓存文件&#xff1a; 进入你的Maven本…...

云计算HCIP-OpenStack04

书接上回&#xff1a; 云计算HCIP-OpenStack03-CSDN博客 12.Nova计算管理 Nova作为OpenStack的核心服务&#xff0c;最重要的功能就是提供对于计算资源的管理。 计算资源的管理就包含了已封装的资源和未封装的资源。已封装的资源就包含了虚拟机、容器。未封装的资源就是物理机提…...

【信息系统项目管理师-论文真题】2015下半年论文详解

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论题一:大项目或多项目的成本管理解题思路写作要点论题二:项目的采购管理解题思路写作要点论题一:大项目或多项目的成本管理 随着移动互联网、物联网、云计算、大数据等新一代信息技术的广泛应用,我国目前…...

C# 面试中常见递归算法

前言 今天我们主要总结一下C#面试中常见递归算法。 C#经典十大排序算法&#xff08;完结&#xff09; C#递归算法计算阶乘的方法 一个正整数的阶乘&#xff08;factorial&#xff09;是所有小于及等于该数的正整数的积&#xff0c;并且0的阶乘为1。自然数n的阶乘写作n!。180…...

qemu源码解析【02】qom基本概念

目录 qemu源码解析【02】qom基本概念参考资料基本数据结构TypeImplObjectClassObjectTypeInfo qemu源码解析【02】qom基本概念 参考资料 https://blog.csdn.net/u011364612/article/details/53485856qemu中为了模拟各种虚拟设备和总线&#xff0c;采用了面向对象的思想&#…...

C++算法第八天

本篇文章我们继续学习c算法 目录 第一题 题目链接 题目展示 代码原理 代码编写 第二题 题目链接 题目展示 代码原理 代码编写 第三题 题目链接 题目展示 代码原理 代码编写 第一题 题目链接 69. x 的平方根 - 力扣&#xff08;LeetCode&#xff09; 题目展示…...

大语言模型的常用微调方法

文章目录 数据构造与清洗数据构造方法1.基于 Self-Instruct 方法的数据构造2.面向结构化知识的数据构造 数据清洗方法1.IFD 指标法2. MoDS 方法 2.2 分词器构造2.2.1 分词器概述BPE 分词器WordPiece 分词器Unigram 分词器 2.3 大型语言模型的微调方法前缀调优提示调优P-Tuning …...

安卓获取所有可用摄像头并指定预览

在Android设备中&#xff0c;做预览拍照的需求的时候&#xff0c;我们会指定 CameraSelector DEFAULT_FRONT_CAMERA前置 或者后置CameraSelector DEFAULT_BACK_CAMERA 如果你使用的是平板或者工业平板&#xff0c;那么就会遇到多摄像头以及外置摄像头问题&#xff0c;简单的指…...

Jwt和Session的区别和优缺点

目录 一、Authentication和Authorization的区别 二、用户认证的两种主流方法 ① 、基于session认证流程如下&#xff1a; ②、基于token&#xff08;令牌&#xff09;用户认证如下&#xff1a; 三、区别和优缺点 JWT的优点&#xff1a; JWT的缺点&#xff1a; 安全性 …...

如何使用 Python 读取和写入 CSV 文件?

在Python中&#xff0c;处理CSV文件是一项常见的任务&#xff0c;通常用于数据交换和数据存储。 Python的标准库csv模块提供了一种方便的方式来读取和写入CSV文件。 下面我将详细介绍如何使用Python的csv模块来读取和写入CSV文件&#xff0c;并提供一些实际开发中的建议和注意…...

FR2012富芮坤PMU:设置PMU GPIO为输入读取状态;在睡眠功能中读取IO;PMU GPIO设置唤醒源中断

从事嵌入式单片机的工作算是符合我个人兴趣爱好的,当面对一个新的芯片我即想把芯片尽快搞懂完成项目赚钱,也想着能够把自己遇到的坑和注意事项记录下来,即方便自己后面查阅也可以分享给大家,这是一种冲动,但是这个或许并不是原厂希望的,尽管这样有可能会牺牲一些时间也有哪天原…...

私有云dbPaaS为何被Gartner技术成熟度曲线标记为“废弃”?

当云计算席卷而来&#xff0c;基于云基础设施的数据库部署也改变了数据库。在传统的私有化部署&#xff08;On-premises&#xff09;和公有云部署&#xff08;Public Cloud&#xff09;之间&#xff0c;不断融合的混合IT&#xff08;Mixed IT&#xff09;形式成为最常见的企业级…...

RabbitMQ 高级特性——延迟队列

文章目录 前言延迟队列延迟队列的概念TTL 死信队列模拟延迟队列设置队列的 TTL设置消息的 TTL 延迟队列插件安装并且启动插件服务使用插件实现延迟功能 前言 前面我们学习了 TTL 和死信队列&#xff0c;当队列中的消息达到了过期时间之后&#xff0c;那么这个消息就会被死信交…...

Perl 引用

Perl 引用 Perl&#xff0c;作为一种灵活而强大的编程语言&#xff0c;广泛用于系统管理、网络编程、GUI开发等领域。在Perl编程中&#xff0c;引用&#xff08;References&#xff09;是一个核心概念&#xff0c;它允许变量引用其他数据&#xff0c;从而创建复杂的数据结构&a…...

llama2——微调lora,第一次参考教程实践完成包括训练和模型

前言&#xff1a;磕磕绊绊&#xff0c;不过收获很多&#xff0c;最大的收获就是解决报错error的分析方法和解决思路 1、首先&#xff0c;我参考的是这篇博客&#xff1a;怎样训练一个自己的大语言模型&#xff1f;全网最简单易懂的教程&#xff01;_开源模型训练出一个语言模型…...

【人工智能数学基础篇】——深入详解矩阵分解:奇异值分解(SVD)与主成分分析(PCA)在数据降维与特征提取中的应用

目录 1. 引言 2. 矩阵分解概述 2.1 矩阵分解的意义 3. 奇异值分解&#xff08;SVD&#xff09; 3.1 定义与数学基础 3.2 SVD 的性质 3.3 SVD 在数据降维中的应用 3.4 示例代码&#xff1a;使用 SVD 进行图像压缩 3.5 结果分析 4. 主成分分析&#xff08;PCA&#xff0…...

C++常见面试题-初级2

1. C和C有什么区别&#xff1f; C是面向对象的语言&#xff0c;而C是面向过程的语言&#xff1b;C引入new/delete运算符&#xff0c;取代了C中的malloc/free库函数&#xff1b;C引入引用的概念&#xff0c;而C中没有&#xff1b;C引入类的概念&#xff0c;而C中没有&#xff1…...

R square 的计算方法和一点思考

模型的性能评价指标有几种方案&#xff1a;RMSE&#xff08;平方根误差&#xff09;、MAE&#xff08;平均绝对误差&#xff09;、MSE(平均平方误差)、R2_score 其中&#xff0c;当量纲不同时&#xff0c;RMSE、MAE、MSE难以衡量模型效果好坏。这就需要用到R2_score&#xff1…...

梳理你的思路(从OOP到架构设计)_简介EIT造形

目录 1、 复习<基类 /子类>的扩充(extends)结构 典型的<基类/子类>代码结构 <基类/子类>代码结构的变形 2、 从<基类/子类>结构到EIT造形 3、 EIT造形的基本形与变形 1、 复习<基类 /子类>的扩充(extends)结构 典型的<基类/子类>代码…...

梳理你的思路(从OOP到架构设计)_认识EIT造形与内涵

目录 1、 认识类(Class)与内涵 2、 认识EIT造形与内涵 EIT造形&#xff1a; 类造形的组合​编辑 复习EIT的基本形与变形​编辑 不同内涵 EIT造形 1、 认识类(Class)与内涵 回顾 类(Class)是比较小的造形 各种不同内涵&#xff0c;可以透过类(Class)的形式(Form)来呈现出…...

【FTP】FTP基础知识点

文章目录 一、概述二、 工作原理2.1 两个连接2.2 安全性 三、代码实现&#xff1a;1. 选择合适的库2. 连接配置和初始化3. 连接状态检查4. 重连机制5. 文件操作6. 安全性7. 资源管理 参考&#xff1a; 一、概述 将某台计算机中的文件通过网络传送到可能相距很远的另一台计算机…...

排序算法(7):堆排序

问题 排序 [30, 24, 5, 58, 18, 36, 12, 42, 39] 堆排序 堆排序是一种基于堆数据结构的排序算法。堆是一个近似完全二叉树的结构&#xff0c;即除了最后一层外&#xff0c;每一层都必须填满&#xff0c;且最后一层从左往右填充。 堆可以分为大根堆和小根堆。在大根堆中&…...

BERT模型入门(6)语言建模

文章目录 自回归语言建模自编码语言建模 BERT模型在以下两个任务上进行预训练&#xff1a; &#xff08;1&#xff09;掩蔽语言建模 &#xff08;2&#xff09;下一句预测 让我们逐一了解这两种预训练策略是如何工作的。在介绍掩蔽语言模型任务之前&#xff0c;首先让我们了…...

RNN LSTM Seq2Seq Attention

非端到端&#xff1a; data -》 cleaning -》 feature Engining &#xff08;70%-80%工作 设计特征&#xff09;-》 分类器 -》预测 端到端 End-to-End&#xff1a; data -》 cleaning -》Deep learning&#xff08;表示学习&#xff0c;从数据中学习特征&#xff09; -》…...

go语言使用websocket发送一条消息A,持续接收返回的消息

在Go语言中实现一个WebSocket客户端&#xff0c;可以使用gorilla/websocket这个非常流行的库来处理WebSocket连接。下面是一个简单的示例&#xff0c;展示了如何创建一个WebSocket客户端&#xff0c;向服务器发送消息"A"&#xff0c;并持续接收来自服务器的响应。 首…...

音频进阶学习八——傅里叶变换的介绍

文章目录 前言一、傅里叶变换1.傅里叶变换的发展2.常见的傅里叶变换3.频域 二、欧拉公式1.实数、虚数、复数2.对虚数和复数的理解3.复平面4.复数和三角函数5.复数的运算6.欧拉公式 三、积分运算1.定积分2.不定积分3.基本的积分公式4.积分规则线性替换法分部积分法 5.定积分计算…...

沟通的艺术,学会转移矛盾

我的一位好友&#xff0c;资深项目经理&#xff0c;同时也是我公益课程的热心志愿者&#xff0c;最近向我倾诉了他在团队沟通上的挑战。 他发现&#xff0c;尽管辅导学员时感到轻松愉快&#xff0c;但与自己团队成员的沟通却充满挫折。 我询问了他的沟通方式&#xff0c;他解释…...

测评|携程集团25年社招在线测评北森题库、真题分析、考试攻略

携程集团社招入职测评北森题库主要考察以下几个方面&#xff1a; 1. **言语理解**&#xff1a;这部分主要测试应聘者运用语言文字进行思考和交流、迅速准确地理解和把握文段要旨的能力。 2. **资料分析**&#xff1a;包括文字题和图表题&#xff0c;考察应聘者快速找出关键信息…...

C++(进阶) 第4章 map和set的使⽤

C&#xff08;进阶) 第4章 map和set的使⽤ 文章目录 前言一、序列式容器和关联式容器二、set1. insert2.迭代器遍历3.范围for4.erase5.count6.lower_bound和upper_bound 三、multiset总结 前言 上一篇博客写了二叉搜索树&#xff0c;这一篇博客会在上一篇博客原来的上在深入介…...

数独游戏app制作拆解(之三)——数字候选区实现

所谓的数据候选区就是这个&#xff1a; 数字候选区功能及实现&#xff1a; 说明&#xff1a;这部分其实也是textview. 本区功能&#xff1a; 一、实现数字显示到显示区。点击显示区选定某个格子后&#xff0c;再点击这里的数字&#xff0c;会在格子内显示相应的数字。在编辑…...

数据结构——排序

*排序属于数据的运算 1、定义:将一组杂乱无章的数据按一定规律顺次排列一起,即将无序序列排成一个有序序列的运算。 (如果参加排序的数据结构包含多个数据域,那么排序往往是针对其中某个域而言) 2、排序的应用十分广泛:程序中间接应用(二分查找、最短路径、最小生成树…...

制造业4.0:AI与机器人如何重塑生产线

引言&#xff1a;从传统到未来的转型 在轰鸣的生产线上&#xff0c;传统制造业曾以规模化生产和成本效益为核心竞争力&#xff0c;推动了全球工业化进程。然而&#xff0c;面对现代市场的多样化需求和激烈竞争&#xff0c;这种模式正暴露出越来越多的局限性&#xff1a;产能过剩…...

Fastdfs V6.12.1集群部署(arm/x86均可用)

文章目录 一、 Fastdfs 介绍二、部署 信息三、步骤tracker/storage 机器的 compose 内容storage 机器的 composetracker 与 storage 启动目录层级与配置文件测试测试集群扩容与缩减注意事项 一、 Fastdfs 介绍 FastDFS 是一款高性能的分布式文件系统&#xff0c;特别适合用于存…...

【学习笔记】深入浅出详解Pytorch中的View, reshape, unfold,flatten等方法。

文章目录 一、写在前面二、Reshape&#xff08;一&#xff09;用法&#xff08;二&#xff09;代码展示 三、Unfold&#xff08;一&#xff09;torch.unfold 的基本概念&#xff08;二&#xff09;torch.unfold 的工作原理&#xff08;三&#xff09; 示例代码&#xff08;四&a…...

解决Presto dirver timestamp时区问题

#bigdata/metabase 一、背景介绍 1、Presto版本 使用阿里云集群的版本 EMR-5.4.2&#xff0c;Presto的版本为338&#xff1b; Facebook后续不再维护&#xff0c;Trino 351为首个版本 2、Metabase版本 历史版本为0.38.4&#xff0c;新版本为0.51.5 3、0.38.4 cast to time…...

【优选算法】Prefix-Kage:前缀和的算法影(上)

文章目录 1.概念解析2.代码实现2.1【模版】前缀和&#xff08;一维&#xff09;2.1.1 原理2.1.2 代码实现 2.2【模版】前缀和&#xff08;二维&#xff09;2.2.1 原理2.2.2 代码实现 希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力&#xff01; 本篇是优选算…...

中阳科技:量化交易模型的技术革新与实践应用

在金融市场日益复杂化的今天&#xff0c;量化交易作为数据驱动的现代化交易方式&#xff0c;已成为金融领域发展的关键方向。中阳科技凭借深厚的技术积累与创新能力&#xff0c;积极探索量化交易模型的优化与应用&#xff0c;开辟了智能金融新局面。 量化交易的优势与市场前景…...

golang 判断一个点是否在一个多边形内

我有一需求为&#xff1a;判断一个点&#xff08;经纬度范围&#xff09;是否在一个多边形范围内&#xff08;多个经纬度点&#xff09; 这里我借助几何库&#xff08; github.com/paulmach/orb&#xff09;来处理地理空间数据 可以通过在线获取经纬度来确认代码正确性 packa…...

图论笔记1

1.1邻接矩阵储存法 //创建:二维数组vector<vector<int>> graph(n,vector<int>(n,0));//储存for(int i0;i<m;i){int x1,x2;cin>>x1>>x2;graph[x1-1][x2-1]1;}1.2邻接表储存法 补充&#xff1a;c中的list是链表 链接 //创建&#xff1a;数组…...

大模型QLoRA微调——基于Qwen2-7B的自动化病历摘要生成系统

01 项目简介 &#xff08;1&#xff09;项目背景 医疗文档中包含大量的诊疗信息&#xff0c;例如疾病诊断、手术名称、解剖部位、药物使用以及影像和实验室检查结果。这些信息是医疗数据分析的核心&#xff0c;但由于医疗文本内容复杂、格式多样&#xff0c;提取这些关键内容…...

CTFHub-ssrf

技能树--Web--SSRF 内网访问 开启题目 尝试访问位于127.0.0.1的flag.php吧 进入环境 根据提示输入即可 127.0.0.1/flag.php 伪协议读取文件 开启题目 尝试去读取一下Web目录下的flag.php吧 进入环境&#xff0c;根据提示输入 file:///var/www/html/flag.php 鼠标右键查看…...

使用ElasticSearch实现全文检索

文章目录 全文检索任务描述技术难点任务目标实现过程1. java读取Json文件&#xff0c;并导入MySQL数据库中2. 利用Logstah完成MySQL到ES的数据同步3. 开始编写功能接口3.1 全文检索接口3.2 查询详情 4. 前端调用 全文检索 任务描述 在获取到数据之后如何在ES中进行数据建模&a…...

【docker】容器编排之docker swarm

Docker Swarm容器编排详细讲解 Docker Swarm是Docker的原生容器编排工具&#xff0c;它通过将多个Docker引擎组合成一个集群来实现高效的容器部署和管理。 Swarm提供了服务发现、负载均衡、扩展、自动恢复等功能&#xff0c;能够让开发者和运维人员以更简便的方式管理容器化应…...

微信小程序苹果手机自带的数字键盘老是弹出收起,影响用户体验,100%解决

文章目录 1、index.wxml2、index.js3、index.wxss1、index.wxml <!--index.wxml--> <view class="container"><view class="code-input-container"><view class="code-input-boxes"><!-- <block wx:for="{{…...