Python 数学建模——方差分析
文章目录
- 前言
- 单因素方差分析
- 原理
- 核心代码
- 双因素方差分析
- 数学模型
- 分析依据
- 典型代码
前言
方差分析也是概率论中非常重要的内容,有时数学建模需要用到。方差分析是干什么的?如果说假设检验用于分析两个总体之间的均值 μ 1 , μ 2 \mu_1,\mu_2 μ1,μ2 是否存在显著的差别,那么方差分析就是分析两个以上总体之间的均值是否存在显著的差别。
单因素方差分析
用途:已知一个量 A A A 可能会影响 X X X, A A A 的不同取值可能会造成 X X X 的分布函数不同。判定 A A A 是不是真的会影响 X X X。(需要默认 X X X 服从正态分布,且 A A A 不影响正态分布的方差,可以在论文的假设中给出;当 A A A 只有两个取值的时候,就退化成了假设检验)
建议只看下面的“用途”概括以及代码部分,原理部分只是简单介绍且生涩难懂。
原理
假设有 r r r 个正态总体 X i ∼ N ( μ i , σ 2 ) ( i = 1 , 2 , ⋯ , r ) {X_i}\sim N({{\mu }_{i}},{{\sigma }^{2}})(i=1,2,\cdots ,r) Xi∼N(μi,σ2)(i=1,2,⋯,r) 相互独立,现在我们给出假设 H 0 : μ 1 = μ 2 = ⋯ = μ r {H_0}:{{\mu }_{1}}={{\mu }_{2}}=\cdots ={{\mu }_{r}} H0:μ1=μ2=⋯=μr。从第 i i i 个正态总体中抽取了 n i n_i ni 个样本,并将其均值记作 X ‾ i \overline{X}_i Xi。 n = ∑ i = 1 r n i n=\sum_{i=1}^{r}{{{n}_{i}}} n=∑i=1rni , X ‾ \overline X X 是所有的 n n n 个样品的均值。
单因素方差分析,正是通过对要分析的因素 A A A 取 A 1 , ⋯ , A r {{A}_{1}},\cdots ,{{A}_{r}} A1,⋯,Ar 这不同的 r r r 个值,对于每个值分别获取一个总体,通过判断各个总体的均值是否有显著差异(即假设 H 0 H_0 H0 是否成立)来判断因素 A A A 是否对总体有显著影响。
我们构造下面三个统计量:
S T = ∑ i = 1 r ∑ j = 1 n i ( X i j − X ‾ ) 2 = ∑ i = 1 r ∑ j = 1 n i X i j 2 − n X ‾ 2 {{S}_{T}}=\sum_{i=1}^{r}{\sum_{j=1}^{{{n}_{i}}}{(}}{{X}_{ij}}-\overline{X}{{)}^{2}}=\sum_{i=1}^{r}{\sum_{j=1}^{{{n}_{i}}}{{{X}_{ij}^{2}}-}}n{{\overline{X}}^{2}} ST=i=1∑rj=1∑ni(Xij−X)2=i=1∑rj=1∑niXij2−nX2 S E = ∑ i = 1 r ∑ j = 1 n i ( X i j − X ‾ i ) 2 = ∑ i = 1 r ∑ j = 1 n i X i j 2 − ∑ i = 1 r n i X ‾ i 2 {{S}_{E}}=\sum_{i=1}^{r}{\sum_{j=1}^{{{n}_{i}}}{(}}{{X}_{ij}}-\overline{X}_i{{)}^{2}}=\sum_{i=1}^{r}{\sum_{j=1}^{{{n}_{i}}}{{{X}_{ij}^{2}}-}}\sum_{i=1}^{r}{{{n}_{i}}}{{\overline{X}_i}^{2}} SE=i=1∑rj=1∑ni(Xij−Xi)2=i=1∑rj=1∑niXij2−i=1∑rniXi2 S A = ∑ i = 1 r n i ( X ‾ i − X ‾ ) 2 = S T − S E {{S}_{A}}=\sum_{i=1}^{r}{{{n}_{i}}}(\overline{X}_i-\overline{X}{{)}^{2}}={{S}_{T}}-{{S}_{E}} SA=i=1∑rni(Xi−X)2=ST−SE
其中 S T S_T ST 反映了所有样本之间的差异情况, S E S_E SE 反映了各组内部样本之间的差异情况(即同一组内随机抽样产生的误差), S A S_A SA 反映了各组之间由于因素水平不同而引起的差异(不同水平下的差异即条件误差)。
当假设 H 0 H_0 H0 成立时,应当有 S E , S A S_E,S_A SE,SA 相互独立,且统计量 F = S A / ( r − 1 ) S E / ( n − r ) ∼ F ( r − 1 , n − r ) F=\cfrac{{{S}_{A}}/(r-1)}{{{S}_{E}}/(n-r)}\sim F(r-1,n-r) F=SE/(n−r)SA/(r−1)∼F(r−1,n−r)。若 F < F α ( r − 1 , n − r ) F<{{F}_{\alpha }}(r-1,n-r) F<Fα(r−1,n−r)(其中 α \alpha α 是显著性水平),则接受原假设,认为总体之间的均值不存在显著差别。
F F F 值位于区间 | [ 0 , F 0.05 ( r − 1 , n − r ) ] [0,{{F}_{0.05}}(r-1,n-r)] [0,F0.05(r−1,n−r)] | ( F 0.05 ( r − 1 , n − r ) , F 0.01 ( r − 1 , n − r ) ] ({{F}_{0.05}}(r-1,n-r),{{F}_{0.01}}(r-1,n-r)] (F0.05(r−1,n−r),F0.01(r−1,n−r)] | ( F 0.01 ( r − 1 , n − r ) , + ∞ ) ({{F}_{0.01}}(r-1,n-r),+\infty ) (F0.01(r−1,n−r),+∞) |
---|---|---|---|
α \alpha α 值位于区间 | [ 0.05 , 1 ] [0.05,1] [0.05,1] | [ 0.01 , 0.05 ) [0.01,0.05) [0.01,0.05) | [ 0 , 0.01 ) [0,0.01) [0,0.01) |
对于均值的说法 | 差别不显著 | 差别显著 | 差别高度显著 |
核心代码
核心代码如下:
import statsmodels.api as sm# 此处的x,a是长度相同的一维数组。第 i 个数据的值是a[i],属于第x[i]个样本总体。比如:
x = [1 1 1 1 2 2 2 2 3 3 3 3 4 4 4 4 5 5 5 5]
a = [256 242 280 298 254 330 290 295 250 277 230 302 248 280 305 289 236 252220 252]d={'x':x,'y':a} #构造求解需要的字典
model = sm.formula.ols("y~C(x)",d).fit() #构建模型
anovat = sm.stats.anova_lm(model) #进行单因素方差分析
print(anovat)
运行的结果示例如下,需要用到C(x)
行PR(>F)
列的内容。这个 0.110913 0.110913 0.110913 是使得 F < F α ( r − 1 , n − r ) F<{{F}_{\alpha }}(r-1,n-r) F<Fα(r−1,n−r) 成立的最大 α \alpha α,也就是 F F F 属于区间 [ 0 , F 0.05 ( r − 1 , n − r ) ] [0,{{F}_{0.05}}(r-1,n-r)] [0,F0.05(r−1,n−r)],从而差别不显著。
df sum_sq mean_sq F PR(>F)
C(x) 4.0 6125.7 1531.425 2.261741 0.110913
Residual 15.0 10156.5 677.100 NaN NaN
双因素方差分析
用途:有两个量 A A A, B B B 都会影响到随机变量 X X X 的分布。单方面地,分别验证 A A A 是否影响 X X X、 B B B 是否影响 X X X。综合地,判断 A , B A,B A,B 对 X X X 的影响是否有交互效应。
数学模型
总体 X X X 会受到 A A A、 B B B 两个因素的影响,仿照单因素方差分析的思路,我们令因素 A A A 取 s s s 个不同水平 A 1 , ⋯ , A s {{A_1}},\cdots ,{{A}_{s}} A1,⋯,As,令因素 B B B 取 r r r 个不同水平 B 1 , ⋯ , B r {{B_1}},\cdots ,{{B}_{r}} B1,⋯,Br。
对于每一组因素组合 ( B i , A j ) ({{B}_{i}},{{A}_{j}}) (Bi,Aj),都取 t t t 个样本,得到一个总体 X i j X_{ij} Xij。我们认为这个总体服从正态分布,即 X i j ∼ N ( μ i j , σ 2 ) {{X}_{ij}}\sim N({{\mu }_{ij}},{{\sigma }^{2}}) Xij∼N(μij,σ2)。那么就有 ε i j k = X i j k − μ i j ∼ N ( 0 , σ 2 ) {{\varepsilon }_{ijk}}={{X}_{ijk}}-{{\mu }_{ij}}\sim N(0,{{\sigma }^{2}}) εijk=Xijk−μij∼N(0,σ2)。
现在获取下面几个统计量:
- 所有总体的均值 μ = 1 r s ∑ i = 1 r ∑ j = 1 s μ i j \displaystyle\mu =\frac{1}{rs}\sum_{i=1}^{r}{\sum_{j=1}^{s}{{{\mu }_{ij}}}} μ=rs1i=1∑rj=1∑sμij。
- 水平 A j A_j Aj 对指标的效应 α j = μ ⋅ j − μ = 1 r ∑ i = 1 r μ i j − μ \displaystyle{{\alpha }_{j}}={{\mu }_{·j}}-\mu =\frac{1}{r}\sum_{i=1}^{r}{{{\mu }_{ij}}}-\mu αj=μ⋅j−μ=r1i=1∑rμij−μ。
- 水平 B i B_i Bi 对指标的效应 β i = μ i ⋅ − μ = 1 s ∑ j = 1 s μ i j − μ \displaystyle{{\beta }_{i}}={{\mu }_{i·}}-\mu =\frac{1}{s}\sum_{j=1}^{s}{{{\mu }_{ij}}}-\mu βi=μi⋅−μ=s1j=1∑sμij−μ。
- 水平 B i B_i Bi 与 A j A_j Aj 对指标的交互效应 γ i j = μ i j − μ − α j − β i {{\gamma }_{ij}}={{\mu }_{ij}}-\mu -{{\alpha }_{j}}-{{\beta }_{i}} γij=μij−μ−αj−βi。
建立的原假设有三个:
- H 01 : α j = 0 ( j = 1 , 2 , ⋯ , s ) {{H}_{01}}:{{\alpha }_{j}}=0(j=1,2,\cdots ,s) H01:αj=0(j=1,2,⋯,s)。
- H 02 : β i = 0 ( i = 1 , 2 , ⋯ , r ) {{H}_{02}}:{{\beta }_{i}}=0(i=1,2,\cdots ,r) H02:βi=0(i=1,2,⋯,r)。
- H 03 : γ i j = 0 ( i = 1 , 2 , ⋯ , r ; j = 1 , 2 , ⋯ , s ) {{H}_{03}}:{{\gamma }_{ij}}=0(i=1,2,\cdots ,r;j=1,2,\cdots ,s) H03:γij=0(i=1,2,⋯,r;j=1,2,⋯,s)。
分析依据
一般来说,至少要讨论假设 H 01 , H 02 {{H}_{01}},{{H}_{02}} H01,H02,当因素 A , B A,B A,B 之间可能存在交互作用时,还需要讨论假设 H 03 H_{03} H03。下面直接介绍含有交互效应的双因素方差分析。
说明一下一些均值:
- 所有总体的均值 X ‾ = 1 r s t ∑ i = 1 r ∑ j = 1 s ∑ k = 1 t X i j k \displaystyle\overline{X}=\frac{1}{rst}\sum_{i=1}^{r}{\sum_{j=1}^{s}{\sum_{k=1}^{t}{{{X}_{ijk}}}}} X=rst1i=1∑rj=1∑sk=1∑tXijk。
- 因素 ( B i , A j ) (B_i,A_j) (Bi,Aj) 所确定总体的均值 X i j ⋅ ‾ = 1 t ∑ k = 1 t X i j k \displaystyle\overline{{{X}_{ij·}}}=\frac{1}{t}\sum_{k=1}^{t}{{{X}_{ijk}}} Xij⋅=t1k=1∑tXijk。
- 因素 A j A_j Aj 所确定 r r r 个总体的均值 X ⋅ j ⋅ ‾ = 1 r t ∑ i = 1 r ∑ k = 1 t X i j k \displaystyle\overline{{{X}_{·j·}}}=\frac{1}{rt}\sum_{i=1}^{r}{\sum_{k=1}^{t}{{{X}_{ijk}}}} X⋅j⋅=rt1i=1∑rk=1∑tXijk。
- 因素 B i B_i Bi 所确定 s s s 个总体的均值 X i ⋅ ⋅ ‾ = 1 s t ∑ j = 1 s ∑ k = 1 t X i j k \displaystyle\overline{{{X}_{i··}}}=\frac{1}{st}\sum_{j=1}^{s}{\sum_{k=1}^{t}{{{X}_{ijk}}}} Xi⋅⋅=st1j=1∑sk=1∑tXijk。
与单因素方差分析类似,可以构造出以下的统计量:
S E = ∑ i = 1 r ∑ j = 1 s ∑ k = 1 t ( X i j k − X i j ⋅ ‾ ) 2 {{S}_{E}}=\sum_{i=1}^{r}{\sum_{j=1}^{s}{\sum_{k=1}^{t}{(}}}{{X}_{ijk}}-\overline{{{X}_{ij·}}}{{)}^{2}} SE=i=1∑rj=1∑sk=1∑t(Xijk−Xij⋅)2 S A = r t ∑ j = 1 s ( X ⋅ j ⋅ ‾ − X ‾ ) 2 {{S}_{A}}=rt\sum_{j=1}^{s}{(}\overline{{{X}_{·j·}}}-\overline{X}{{)}^{2}} SA=rtj=1∑s(X⋅j⋅−X)2 S B = s t ∑ i = 1 r ( X i ⋅ ⋅ ‾ − X ‾ ) 2 {{S}_{B}}=st\sum_{i=1}^{r}{(}\overline{{{X}_{i··}}}-\overline{X}{{)}^{2}} SB=sti=1∑r(Xi⋅⋅−X)2 S A B = t ∑ i = 1 r ∑ j = 1 s ( X i j ⋅ ‾ − X i ⋅ ⋅ ‾ − X ⋅ j ⋅ ‾ + X ‾ ) 2 {{S}_{AB}}=t\sum_{i=1}^{r}{\sum_{j=1}^{s}{(}}\overline{{{X}_{ij·}}}-\overline{{{X}_{i··}}}-\overline{{{X}_{·j·}}}+\overline{X}{{)}^{2}} SAB=ti=1∑rj=1∑s(Xij⋅−Xi⋅⋅−X⋅j⋅+X)2
其中 S E S_E SE 为误差平方和, S A S_A SA 为因素 A A A 的平方和(或列间平方和), S B S_B SB 为因素 B B B 的平方和(或行间平方和), S A B S_{AB} SAB 为交互作用的平方和(或格间平方和)。那么:
- F A = S A s − 1 S E r s ( t − 1 ) ∼ F ( s − 1 , r s ( t − 1 ) ) {{F_A}}=\displaystyle\cfrac{\cfrac{{{S}_{A}}}{s-1}}{\cfrac{{{S}_{E}}}{rs(t-1)}}\sim F(s-1,rs(t-1)) FA=rs(t−1)SEs−1SA∼F(s−1,rs(t−1)),若 F A < F α ( s − 1 , r s ( t − 1 ) ) {{F_A}}<{{F_\alpha }}(s-1,rs(t-1)) FA<Fα(s−1,rs(t−1)) 则接受原假设 。即因素 A A A 无显著影响。
- F B = S B r − 1 S E r s ( t − 1 ) ∼ F ( r − 1 , r s ( t − 1 ) ) {{F_B}}=\displaystyle\cfrac{\cfrac{{{S}_{B}}}{r-1}}{\cfrac{{{S}_{E}}}{rs(t-1)}}\sim F(r-1,rs(t-1)) FB=rs(t−1)SEr−1SB∼F(r−1,rs(t−1)),若 F B < F α ( r − 1 , r s ( t − 1 ) ) {{F_B}}<{{F_\alpha }}(r-1,rs(t-1)) FB<Fα(r−1,rs(t−1)) 则接受原假设 。即因素 B B B 无显著影响。
- F A B = S A B ( r − 1 ) ( s − 1 ) S E r s ( t − 1 ) ∼ F ( ( r − 1 ) ( s − 1 ) , r s ( t − 1 ) ) {{F}_{AB}}=\cfrac{\cfrac{{{S}_{AB}}}{(r-1)(s-1)}}{\cfrac{{{S}_{E}}}{rs(t-1)}}\sim F((r-1)(s-1),rs(t-1)) FAB=rs(t−1)SE(r−1)(s−1)SAB∼F((r−1)(s−1),rs(t−1)),若 F A B < F α ( ( r − 1 ) ( s − 1 ) , r s ( t − 1 ) ) {{F}_{AB}}<{{F_\alpha }}((r-1)(s-1),rs(t-1)) FAB<Fα((r−1)(s−1),rs(t−1)) 则接受原假设 。即因素 A , B A,B A,B 无显著交互作用。
典型代码
#程序文件Pex4_24.py
import numpy as np
import statsmodels.api as sm# 构造数据
y=np.array([[11, 11, 13, 10], [10, 11, 9, 12],[9, 10, 7, 6], [7, 8, 11, 10],[5, 13, 12, 14], [11, 14, 13, 10]]).flatten()
A=np.tile(np.arange(1,5),(6,1)).flatten()
B=np.tile(np.arange(1,4).reshape(3,1),(1,8)).flatten()# 数据字典——此处的A,B,y是长度相同的一维数组。第 i 个数据的值是y[i],属于因素(A[i],B[i])所确定的样本总体。比如:
d={'x1':A,'x2':B,'y':y}
model = sm.formula.ols("y~C(x1)+C(x2)+C(x1):C(x2)",d).fit() #注意交互作用公式的写法
anovat = sm.stats.anova_lm(model) #进行双因素方差分析
print(anovat)
"""df sum_sq mean_sq F PR(>F)
C(x1) 3.0 19.125000 6.375000 1.330435 0.310404
C(x2) 2.0 40.083333 20.041667 4.182609 0.041856
C(x1):C(x2) 6.0 18.250000 3.041667 0.634783 0.701009
Residual 12.0 57.500000 4.791667 NaN NaN
"""
同样是看PR(>F)
列的内容,说明因素x1
对结果影响不显著,x2
对结果影响显著x1,x2
交互作用不显著。
相关文章:
Python 数学建模——方差分析
文章目录 前言单因素方差分析原理核心代码 双因素方差分析数学模型分析依据典型代码 前言 方差分析也是概率论中非常重要的内容,有时数学建模需要用到。方差分析是干什么的?如果说假设检验用于分析两个总体之间的均值 μ 1 , μ 2 \mu_1,\mu_2 μ1,μ…...
计算机视觉中,什么是上下文信息(contextual information)?
在计算机视觉中,上下文信息(contextual information)是指一个像素或一个小区域周围的环境或背景信息,它帮助模型理解图像中对象的相对位置、大小、形状,以及与其他对象的关系。上下文信息在图像中提供了全局的语义和结…...

YOLOv5改进 | 模块缝合 | C3 融合RVB + EMA注意力机制【二次融合】
秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv5入门 改…...
mysql 更改默认端口号 新增用户密码 赋予权限
默认情况下,mysql的端口是3306,超级用户是root,很多情况下会被黑客扫描到,成为肉鸡(作者以前就有过经理),数据库表直接丢失,勒索我。 所以我这里介绍下,更改默认端口&am…...

吐血整理nacos 作为springcloud的配置中心和注册中心
吐血整理nacos 作为配置中心和注册中心 环境版本nacos 版本 nacos启动单机模式启动配置数据库 Spring cloud 连接注册Nacos配置中心导入依赖 注册中心 环境版本 SpringBoot版本SpringCloud版本cloud Alibaba版本2.6.132021.0.52021.0.5.0 参照依据 spring-cloud-alibab 对应…...
【秋招笔试】9.09阿里国际秋招(已改编)-三语言题解
🍭 大家好这里是 春秋招笔试突围,一起备战大厂笔试 💻 ACM金牌团队🏅️ | 多次AK大厂笔试 | 大厂实习经历 ✨ 本系列打算持续跟新 春秋招笔试题 👏 感谢大家的订阅➕ 和 喜欢💗 和 手里的小花花🌸 ✨ 笔试合集传送们 -> 🧷春秋招笔试合集 🍒 本专栏已收集…...

sql语句在sqlserver中能查询出结果,但是代码中查不出来
右键登录名,选择属性,勾选下面两张图片中的项,即可。...

【机器学习】决策树与随机森林:模型对比与应用案例分析
文章目录 一.引言 在现代数据科学的世界中,决策树和随机森林是两个非常重要且广泛使用的机器学习算法。它们不仅因其高效性和强大的表现力而受到青睐,而且在解决实际问题时也表现出了令人印象深刻的能力。本篇文章将深入探讨这两个算法,帮助读…...
Apache SeaTunnel基础介绍
一、什么是Apache SeaTunnel? Apache SeaTunnel(最初名为Waterdrop)是一个开源的分布式数据集成平台,专为大规模数据处理设计。SeaTunnel可以从多种数据源读取数据,进行实时流式处理或批处理,然后将处理后…...

阿里旗下土耳其电商Trendyol计划进军欧洲市场
阿里旗下土耳其电商Trendyol计划进军欧洲市场 近年来,阿里巴巴集团在全球电商领域的布局持续深化,其旗下土耳其电商巨头Trendyol更是凭借其出色的市场表现和强劲的增长势头,成为了备受瞩目的焦点。近日,Trendyol宣布了一项重要战…...

IBM中国研发裁员与AIGC浪潮下的中国IT产业新篇章:挑战、机遇与未来展望
文章目录 一、跨国公司战略调整与全球IT版图的重构1. 跨国公司的战略考量2. 中国IT产业的应对策略 二、人才市场的深刻变革与应对策略1. 人才流失与再就业压力2. 人才培养与引进策略3. 个人职业规划与发展 三、AIGC浪潮下的中国IT产业新机遇1. AIGC技术的潜力与前景2. 中国IT产…...

基于Python的影视推荐平台的设计与实现--附源码79147
摘要 本论文主要论述了如何基于Python和大数据开发一个影视推荐平台,本系统将严格按照软件开发流程进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,作者将论述影视推荐平台的当前背景以及系统开发的目的,后续章节将严…...
Baumer工业相机堡盟工业相机如何通过BGAPISDK使用短曝光功能(曝光可设置1微秒)(C语言)
Baumer工业相机堡盟工业相机如何通过BGAPISDK使用短曝光功能(曝光可设置1微秒)(C语言) Baumer工业相机Baumer工业相机BGAPISDK和短曝光功能的技术背景Baumer工业相机通过BGAPISDK使用短曝光功能1.引用合适的头文件2.通过BGAPISDK使…...
Ubuntu 安装PostgreSQL
安装 PostgreSQL 包: 使用 apt-get 命令安装 PostgreSQL 客户端和服务器包:sudo apt update sudo apt install postgresql postgresql-client启动 PostgreSQL 服务: 在 Ubuntu 中,PostgreSQL 服务默认会自动启动。你可以使用以下命…...
sqlalchemy FastAPI 前端实现数据库增删改查
sqlalchemy FastAPI 前端实现数据库增删改查 仅个人学习笔记,感谢点赞关注! 知识点 连接数据库sqlalchemy 创建表结构FastAPI get post put delete操作FastAPI 请求体 路径和修改参数 依赖项 代码 # -*- ecoding: utf-8 -*- # Author: SuperLong # Em…...

QQueue调用dequeue闪退解决方法
QQueue调用dequeque闪退的解决方法 先看一下Qt帮助文档里面的说明 这个函数假设队列不是空的。 那么我们在调用之前,需要先判断队列是不是空的,如果不是空的,就调用该函数。 if (!queue.isEmpty()) {QString info queue.dequeue(); }这样…...

CSP-J算法基础 计数排序
文章目录 前言计数排序计数排序的过程总结 代码实现计数排序总结 前言 计数排序 计数排序(Counting Sort)是一种线性时间复杂度的排序算法,适用于范围有限的整数排序。它通过计数每个值出现的次数,依次排列这些值。该算法不通过比…...
Java泛型类型解析
解析泛型类型 获取字段泛型类型 **java.lang.reflect.Field#getGenericType**: 作用:返回字段的泛型类型。返回类型:Type。如果字段是一个泛型类型,这个方法将返回一个表示这个泛型类型的 Type 对象,比如 ParameterizedType&…...
EasyExcel 学习之 导出 “类型及精度问题”
目录 现象缘由类型问题精度/格式问题精度问题格式问题 解决 现象 Excel 导出时,可能面临几个问题: 类型问题:常见类型转换、URL 转图片等精度/格式问题:数字、日期转换 缘由 类型问题 Excel 常见的 API 有两种,Ea…...
从视频中每隔10帧截取一帧并保存为图片
要从视频中每隔10帧截取一帧并保存为图片,可以使用 OpenCV 库。 import cv2# 视频文件的路径 video_path path/to/your/video.mp4# 创建一个 VideoCapture 对象 cap cv2.VideoCapture(video_path)# 检查是否成功打开视频文件 if not cap.isOpened():print("E…...

令牌桶 滑动窗口->限流 分布式信号量->限并发的原理 lua脚本分析介绍
文章目录 前言限流限制并发的实际理解限流令牌桶代码实现结果分析令牌桶lua的模拟实现原理总结: 滑动窗口代码实现结果分析lua脚本原理解析 限并发分布式信号量代码实现结果分析lua脚本实现原理 双注解去实现限流 并发结果分析: 实际业务去理解体会统一注…...
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
一、引言 在数据驱动的背景下,知识图谱凭借其高效的信息组织能力,正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合,探讨知识图谱开发的实现细节,帮助读者掌握该技术栈在实际项目中的落地方法。 …...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
css3笔记 (1) 自用
outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size:0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格ÿ…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...

【 java 虚拟机知识 第一篇 】
目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析
Java求职者面试指南:Spring、Spring Boot、Spring MVC与MyBatis技术解析 一、第一轮基础概念问题 1. Spring框架的核心容器是什么?它的作用是什么? Spring框架的核心容器是IoC(控制反转)容器。它的主要作用是管理对…...
OCR MLLM Evaluation
为什么需要评测体系?——背景与矛盾 能干的事: 看清楚发票、身份证上的字(准确率>90%),速度飞快(眨眼间完成)。干不了的事: 碰到复杂表格(合并单元…...