【12月9日更新1/4决赛预测】用二元泊松模型预测2022年世界杯淘汰赛结果

news2024/11/18 7:37:21

用二元泊松模型预测2022年世界杯淘汰赛结果

网上有很多文章用双泊松(Double Poisson)模型来预测世界杯比赛结果。但是双泊松模型有一个严重的缺陷,那就是它假设比赛中两队的比分是条件独立的。而我们都知道,在对抗性比赛中,两队的比分是存在关联的,因为两队都会根据场上的比分形势调整策略。比如足球比赛,当主队1:0领先,且距离比赛结束只剩10分钟时,落后的客队会孤注一掷,甘愿冒更大风险去争取平局。但如果主队3:0甚至4:0领先时,领先的主队可能会稍微放松下来,甚至教练会用新人换下主力,此时落后的客队更容易进1球(甚至主队会礼貌性让球)。所以比赛中两队比分是相关的,这种相关性可以通过依赖性参数来描述。

二元泊松(Bivariate Poisson)模型可以度量两队比分的依赖性参数,用二元泊松模型对比赛进行的预测准确率更高,在1/8决赛已经进行的4场比赛中,二元泊松模型预测正确率100%。

需要完整源代码的朋友可以关注私信我,或者评论留言索取。

在这里插入图片描述

文章目录

    • 二元泊松模型
    • 最大似然法
    • 贝叶斯法
    • 用模型预测8强
    • 用模型预测4强

二元泊松模型

考虑随机变量 X r , r ∈ { 1 , 2 , 3 } X_r, r \in \{1,2,3\} Xr,r{1,2,3}服从独立泊松分布,其参数 λ r > 0 \lambda_r > 0 λr>0,那么随机变量 X = X 1 + X 3 X = X_1+X_3 X=X1+X3 Y = Y 2 + Y 3 Y=Y_2+Y_3 Y=Y2+Y3服从二元泊松分布 B P ( λ 1 , λ 2 , λ 3 ) BP(\lambda_1,\lambda_2,\lambda_3) BP(λ1,λ2,λ3),其联合概率为:

P X , Y ( x , y ) = P r ( X = x , Y = y ) = exp ⁡ { − ( λ 1 + λ 2 + λ 3 ) } λ 1 x x ! λ 2 y y ! × ∑ k = 0 m i n ( x , y ) ( x k ) ( y k ) k ! ( λ 3 λ 1 λ 2 ) k \begin{aligned} P_{X,Y}(x,y)&=Pr(X=x,Y=y)\\ &=\exp\{-(\lambda_1+\lambda_2+\lambda_3)\}\frac{\lambda_1^x}{x!}\frac{\lambda_2^y}{y!}\times\sum_{k=0}^{min(x, y)}\begin{pmatrix}x\\k\end{pmatrix}\begin{pmatrix}y\\k\end{pmatrix}k!(\frac{\lambda_3}{\lambda_1\lambda_2})^k \end{aligned} PX,Y(x,y)=Pr(X=x,Y=y)=exp{(λ1+λ2+λ3)}x!λ1xy!λ2y×k=0min(x,y)(xk)(yk)k!(λ1λ2λ3)k

边缘概率上,每个随机变量服从泊松分布,期望 E ( X ) = λ 1 + λ 3 E(X) = \lambda_1+\lambda_3 E(X)=λ1+λ3 E ( Y ) = λ 2 + λ 3 E(Y) = \lambda_2+\lambda_3 E(Y)=λ2+λ3,协方差 c o v ( X , Y ) = λ 3 cov(X, Y) = \lambda_3 cov(X,Y)=λ3。这里 λ 3 \lambda_3 λ3就是度量两队进球之间相关性的指标。如果 λ 3 = 0 \lambda_3=0 λ3=0,则两个变量是条件独立的,此时二元泊松分布退化成两个独立泊松分布的乘积,即双泊松模型。

我们用 ( x n , y n ) (x_n, y_n) (xn,yn)表示第 n n n场比赛主队和客队的比分,那么带比分相关性的二元泊松模型的一般形式为:

X n , Y n ∣ λ 1 n , λ 2 n , λ 3 n ∼ BivPoisson ( λ 1 n , λ 2 n , λ 3 n ) log ⁡ ( λ 1 n ) = μ + h o m e + a t t h n + d e f a n log ⁡ ( λ 2 n ) = μ + a t t a n + d e f h n log ⁡ ( λ 3 n ) = β 0 + γ 1 β h n h o m e + γ 2 β a n a w a y + γ 3 β w n \begin{aligned} X_n,Y_n \mid \lambda_{1n},\lambda_{2n},\lambda_{3n}&∼\text{BivPoisson}(\lambda_{1n},\lambda_{2n},\lambda_{3n})\\ \log(\lambda_{1n})&=\mu+home+att_{h_n}+def_{a_n}\\ \log(\lambda_{2n})&=\mu+att_{a_n}+def_{h_n}\\ \log(\lambda_{3n})&=\beta_0+\gamma_1\beta_{h_n}^{home}+\gamma_2\beta_{a_n}^{away}+\gamma_3\beta {w_n} \end{aligned} Xn,Ynλ1n,λ2n,λ3nlog(λ1n)log(λ2n)log(λ3n)BivPoisson(λ1n,λ2n,λ3n)=μ+home+atthn+defan=μ+attan+defhn=β0+γ1βhnhome+γ2βanaway+γ3βwn

其中:

λ 1 n , λ 2 n \lambda_{1n}, \lambda_{2n} λ1n,λ2n分别表示主队和客队的进球率

μ \mu μ表示截距项

h o m e home home代表主场效应,众所周知在自己的主场踢球是由很多优势的(更熟悉场地、更适应气候、更热情的球迷…);

a t t t att_t attt d e f t def_t deft 分别表示每只球队的进攻能力防守能力,公式中下标 t t t写作 h n , a n h_n, a_n hn,an,分别表示主队和客队的第 n n n场比赛;

β h n h o m e \beta_{h_n}^{home} βhnhome β a n a w a y \beta_{a_n}^{away} βanaway 分别代表主队和客队的参数;

w n w_n wn是第 n n n场比赛的协方差向量,用于建模协方差项;

β \beta β 是对应的回归系数向量;

参数 γ 1 , γ 2 , γ 3 \gamma_1, \gamma_2, \gamma_3 γ1,γ2,γ3是取值为0或1的二进制指示符,可激活线性预测的不同来源。因此,当 γ 1 = γ 2 = γ 3 = 0 \gamma_1=\gamma_2=\gamma_3=0 γ1=γ2=γ3=0时,我们得到常数协方差;而当 ( γ 1 , γ 2 , γ 3 ) = ( 1 , 1 , 0 ) (\gamma_1, \gamma_2,\gamma_3)=(1,1,0) (γ1,γ2,γ3)=(1,1,0)时,我们假设协方差仅取决于团队的参数,跟比赛协方差无关。

为了实现模型的可识别性,攻击/防御参数都是零和的

∑ t = 1 T a t t t = 0 , ∑ t = 1 T d e f t = 0 \sum_{t=1}^Tatt_t=0, \qquad \sum_{t=1}^Tdef_t=0 t=1Tattt=0,t=1Tdeft=0

这条约束大量出现在足球文献中,即假设第 T T T只球队的能力等于其他球队能力和的负值,即能力的零和性。

a t t T = − ∑ t = 1 T − 1 a t t t , d e f T = − ∑ t = 1 T − 1 d e f t att_T = -\sum_{t=1}^{T-1}att_t, \qquad def_T = -\sum_{t=1}^{T-1}def_t attT=t=1T1attt,defT=t=1T1deft

有了上面的理论基础,我们就可以构造并训练我们的模型了。

最大似然法

给定参数向量 θ = ( { a t t t , d e f t , t = 1 , … , T } , μ , h o m e , β h n h o m e , β a n a w a y , β 0 , β ) \theta = (\{att_t, def_t, t=1,\dots, T\}, \mu, home, \beta_{h_n}^{home}, \beta_{a_n}^{away}, \beta_0, \beta) θ=({attt,deft,t=1,,T},μ,home,βhnhome,βanaway,β0,β) ,二元泊松模型的似然函数为:

L ( θ ) = ∏ n = 1 N exp ⁡ { − ( λ 1 n + λ 2 n + λ 3 n ) } λ 1 n x n x n ! λ 2 n y n y n ! × ∑ k = 0 m i n ( x n , y n ) ( x n k ) ( y n k ) k ! ( λ 3 n λ 1 n λ 2 n ) k L(\theta) = \prod_{n=1}^N\exp\{-(\lambda_{1n}+\lambda_{2n}+\lambda_{3n})\}\frac{\lambda_{1n}^{x_n}}{x_n!}\frac{\lambda_{2n}^{y_n}}{y_n!}\times\sum_{k=0}^{min(x_n, y_n)}\begin{pmatrix}x_n\\k\end{pmatrix}\begin{pmatrix}y_n\\k\end{pmatrix}k!(\frac{\lambda_{3n}}{\lambda_{1n}\lambda_{2n}})^k L(θ)=n=1Nexp{(λ1n+λ2n+λ3n)}xn!λ1nxnyn!λ2nyn×k=0min(xn,yn)(xnk)(ynk)k!(λ1nλ2nλ3n)k

最大似然参数估计只要找到最大似然估计函数 θ ^ \hat\theta θ^ 即可:

θ ^ = a r g m a x θ ∈ Θ L ( θ ) \hat\theta = \underset{\theta \in \Theta} {argmax} L(\theta) θ^=θΘargmaxL(θ)

这个过程可以用求导解决:

l ′ ( θ ) = 0 l'(\theta)=0 l(θ)=0

Wald检验+偏置信区间也可以构造最大似然估计 θ ^ \hat\theta θ^,95%的Wald类型区间满足:

θ ^ ± 1.96 s e ( θ ^ ) \hat \theta ±1.96 se(\hat \theta) θ^±1.96se(θ^)

最大似然法仅适用于静态模型,因为静态模型复杂度不高。当使用动态模型时,随着参数空间的增长,最大似然法的计算量会非常大,且输出结果也不可靠。所以我们会更关注另一种方法——贝叶斯法。

贝叶斯法

贝叶斯分析的目标是从联合后验分布 π ( θ ∣ D ) \pi(\theta \mid D) π(θD)中得出推断结论,这里 D = ( x n , y n ) n = 1 , … , N D=(x_n,y_n) _{n=1,…,N} D=(xn,yn)n=1,,N 表示 N N N场比赛的观测数据集合。联合后验分布满足:

π ( θ ∣ D ) = p ( θ ∣ D ) π ( θ ) p ( D ) ∝ p ( D ∣ θ ) π ( θ ) \pi(\theta \mid D) = \frac{p(\theta \mid D)\pi(\theta)}{p(D)} \propto p(D \mid \theta)\pi(\theta) π(θD)=p(D)p(θD)π(θ)p(Dθ)π(θ)

其中 p ( D ∣ θ ) p(D \mid \theta) p(Dθ) 是模型采样分布(与似然函数成比例), π ( θ ) \pi(\theta) π(θ) θ \theta θ 的联合先验分布。 p ( D ) = ∫ Θ p ( D ∣ θ ) π ( θ ) d θ p(D) = \int_\Theta p(D \mid \theta)\pi(\theta)d\theta p(D)=Θp(Dθ)π(θ)dθ 是不依赖于 θ \theta θ的边际似然。

在大多数情况下, π ( θ ∣ D ) \pi(\theta \mid D) π(θD)不具有闭合形式,因此,我们需要通过模拟对其进行近似。处理这种情况的最主流的方法是马尔可夫链蒙特卡罗模拟

就推断结论而言,我们通常对单一参数的边际后验分布(后验均值、中值、可信区间等)感兴趣。我们可以将上述二元泊松模型的后验分布公式写成:

π ( θ ∣ D ) ∝ π ( θ ) ∏ n = 1 N BivPoisson ( λ 1 n , λ 2 n , λ 3 n ) \pi(\theta \mid D) \propto \pi(\theta) \prod_{n=1}^N \text{BivPoisson}(\lambda_{1n},\lambda_{2n},\lambda_{3n}) π(θD)π(θ)n=1NBivPoisson(λ1n,λ2n,λ3n)

其中 π ( θ ) = π ( a t t ) π ( d e f ) π ( μ ) π ( h o m e ) π ( β h n h o m e ) π ( β a n a w a y ) π ( β 0 ) π ( β ) \pi(\theta)=\pi(att)\pi(def)\pi(\mu)\pi(home)\pi(\beta_{h_n}^{home})\pi(\beta_{a_n}^{away})\pi(\beta_0)\pi(\beta) π(θ)=π(att)π(def)π(μ)π(home)π(βhnhome)π(βanaway)π(β0)π(β) 是先验独立参数分量假设下的联合最优分布。

标准方法是将一些信息量较弱的先验分布分配给团队的某些特定能力。这些参数在两个常见(先验)分布中可以交换:

att t ∼ N ( μ a t t , σ a t t ) def t ∼ N ( μ d e f , σ d e f ) , t = 1 , … , T \begin{aligned} &\text{att}_t∼N(\mu_{att},\sigma_{att})\\ &\text{def}_t∼N(\mu_{def},\sigma_{def}), t= 1,\dots,T \end{aligned} atttN(μatt,σatt)deftN(μdef,σdef),t=1,,T

这里面 m u a t t , σ a t t , μ d e f , σ d e f mu_{att},\sigma_{att}, \mu_{def},\sigma_{def} muatt,σatt,μdef,σdef 都是超参,通过向其余参数分配一些信息量较弱的先验来完成模型公式化。

用模型预测8强

我用2018-2022年期间的所有国际比赛,以及2022年世界杯小组赛的数据,通过Hamilton Monte Carlo采样、2000次迭代训练了一个模型。其思路是提供一个动态预测场景:在每个比赛日结束时,重新调整模型以预测剩余的比赛。对2022年世界杯淘汰赛第一轮的16场比赛的预测,每只球队的动态先验会集中关注参赛球队小组赛3场比赛的进攻防守数据,前三场比赛将作为一个单独独立的时间段,而不是作为三个不同的时间段来考虑。这里有一个因素需要考虑,就是小组赛的最后一场比赛中,一些球队已经晋级,他们可能没有派主力阵容或没有全力去踢,所以对这样的球队(比如葡萄牙),在先验数据上会进行一些微调。

用上述模型的后验预测分布的后验匹配概率见下表:

强队弱队最可能结果
荷兰美国0.4710.2980.2311-0 (0.164)
阿根廷澳大利亚0.6650.2460.0891-0 (0.208)
法国波兰0.6200.2350.1451-0 (0.145)
英格兰塞内加尔0.6320.2350.1321-0 (0.162)
日本克罗地亚0.3630.2880.3491-1 (0.122)
巴西韩国0.7400.1900.0701-0 (0.171)
西班牙摩洛哥0.5620.2700.1681-0 (0.173)
葡萄牙瑞士0.4860.2730.2411-0 (0.141)

上表中,胜/负针对的都是强队,最可能结果后面的括号表示后验概率。

更加直观可视化的结果见下图:

在这里插入图片描述

上图中越深的颜色表示越可能出现的结果,x轴是强队,y轴是弱队。

从预测结果看,目前已经结束的4场1/8决赛全部预测正确:

比赛预测实际结果
荷兰-美国✅荷兰胜 (0.471)3:1 荷兰胜
阿根廷-澳大利亚✅阿根廷胜 (0.665)2:1 阿根廷胜
法国-波兰✅法国胜 (0.620)3:1 法国胜
英格兰-塞内加尔✅英格兰胜 (0.632)3:0 英格兰胜

12月6日更新

昨晚今晨进行的日本-克罗地亚和巴西-韩国的两场八分之决赛中,日本-克罗地亚120分钟踢平,点球大战中日本队2:4负于克罗地亚。这个结果与模型的预测相同。模型预测120分钟的最可能结果是1-1战平。另一场巴西-韩国毫无悬念,巴西4:1战胜韩国,这与模型预测巴西有74%的概率获胜一致。

比赛预测实际结果
日本-克罗地亚✅120分钟战平
日本胜(0.363) - 平局(0.288 ) - 克罗地亚胜(0.349)
最可能结果:1-1(0.122)
2:4 克罗地亚胜(点球)
巴西-韩国✅巴西胜 (0.740)4:1 巴西胜

12月7日更新

12月7日的比赛,模型预测西班牙有56.2%的胜率,结果120分钟踢平,点球西班牙0:3输给摩洛哥,算是爆了个小冷门。葡萄牙的比赛结果跟预期一致,葡萄牙胜。只是没有料到会是6:1的大比分。

比赛预测实际结果
西班牙-摩洛哥❌西班牙(0.562)0:3 摩洛哥胜(点球)
葡萄牙-瑞士✅葡萄牙胜 (0.486)6:1 葡萄牙胜

总结

至此,1/8决赛全部完成,模型预测仅错1场(西班牙-摩洛哥),整体准确率还是比较理想的。下面我会紧锣密鼓给出1/4决赛的预测。

用模型预测4强

下面是对1/4决赛的预测(2022-12-09 17:05 更新)

强队弱队最可能结果
巴西克罗地亚0.6760.2200.1041-0 (0.160)
阿根廷荷兰0.4140.2640.3220-0 (0.172)
葡萄牙摩洛哥0.5360.1910.2731-0 (0.160)
英格兰法国0.3610.2920.3480-0 (0.126)

在这里插入图片描述
12月10日更新

比赛预测实际结果
巴西-克罗地亚❌巴西胜(0.676)2:4 克罗地亚胜(点球)
阿根廷-荷兰✅120分钟战平
阿根廷胜(0.414) - 平局(0.264) - 荷兰胜(0.322 )
最可能结果:0-0(0.172)
4:3 阿根廷胜(点球)

12月11日更新

比赛预测实际结果
葡萄牙-摩洛哥❌葡萄牙胜(0.536 )0:1 摩洛哥胜
英格兰-法国❌120分钟战平
英格兰胜(0.361) - 平局(0.292) - 法国胜(0.348)
最可能结果:0-0 (0.126)
1:2 法国胜

∗ ∗ ∗ \ast \ast \ast

需要完整源代码的朋友可以关注私信我,或者评论留言索取。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/82589.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【PCB设计】孔间距不可忽视,小心废板!

为什么有时候明明PCB设计没有检查出错误,但是在生产加工后还是出现短路、断板等不良情况? 那是因为你没有考虑到孔间距问题,导致在装配过程中无法避免的产生损耗。 PCB单面板或双面板的制作,都是在下料之后,直接进行非…

商品信息管理系统(Python)完整版

目录 功能模块: 实现思路: 运行功能演示: 具体实现过程: 定义商品类: 定义商品管理类 定义显示商品信息函数 输入销量函数: 添加商品信息: 删除商品信息 修改商品信息 导入商品信息…

Linux下安装Zookeeper教程

ZooKeeper 简介 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服…

字符串匹配算法(BFRK)

文章目录题目一、BF算法二、RK算法补充题目 有字符串 str1 和 str2 ,str1 中是否包含 str2,如果没有包含返回 -1,如果包含,则返回 str2 在 str1 中开始的位置 注:保证 str1 和 str2 字符串的长度大于 0 举例&#x…

k8s-kubeadm安装1.25.5

准备环境: 想体验下新的版本 主机名IP资源k8s-master192.168.1.1912u2G内存20G磁盘k8s-node192.168.1.1922u2G内存20G磁盘 1 修改主机名,配置hosts文件 # 修改主机名 hostnamectl set-hostname k8s-master hostnamectl set-hostname k8s-node # 修改h…

CMMI2.0配置管理工作及访谈学习笔记(续)

1. 配置管理岗位职责 范围:组织级和项目级配置管理管理对象为过程和产品,产品为识别出的配置项建立配置库:为项目建立开发库(管理库)、基线库,建立配置库结构并分配权限(命名规范)基…

猿如意中的【DBeaver】工具详情介绍

猿如意中的【DBeaver】工具详情介绍一、工具名称二、下载安装渠道2.1 什么是猿如意?2.2 如何下载猿如意?2.3 如何在猿如意中下载开发工具?三、工具介绍四、DBeaver功能介绍五、软件截图六、DBeaver安装过程6.1 在猿如意中下载DBeaver6.2 选择…

道路裂缝坑洼图像开源数据集汇总

CrackForest数据集 数据集下载链接:http://suo.nz/2wdNdX CrackForest数据集是一个带注释的道路裂缝图像数据库,可以大致反映城市路面状况。 道路裂缝坑洼图像数据集 数据集下载链接:http://suo.nz/3eEDlj 这个数据集是一个极具挑战性的集…

67、INGeo:利用占用网格先验加速/减少迭代次数

简介 论文地址:INGeo: Accelerating Instant Neural Scene Reconstruction with Noisy Geometry Priors 首先我们知道Instant-ngp利用最先进的射线推进技术(指数步进、空白跳过、样本压缩)实现密集网格自剪枝的采样策略,这种采样…

代码随想录训练营第48天|LeetCode 198.打家劫舍、213.打家劫舍II、 337.打家劫舍III

参考 代码随想录 题目一:LeetCode 198.打家劫舍 确定dp数组下标及其含义 dp[i]:考虑下标i(包括i)以内的房屋,可以偷窃的最大金额为dp[i]。确定递推公式 如果当前的第i个房间不偷,那么dp[i] dp[i-1].如…

干货收藏 |关键词优化攻略!(附11款关键词检索工具)

关键字搜索是买家查找产品的方式,一个高质量的关键词可以帮助卖家快速增加曝光率。简而言之,利用好关键词机理,能让我们的产品产生更有利的排名因素。 那如何找到合适的关键字,设置关键字时应该注意什么? 今天从产品的…

libcrypto-1_1.dll丢失,要怎么处理?

一般出现这个libcrypto-1_1.dll丢失的问题,我看绝大部分都是出在刺客信条这边的人,很多人吐槽 在运行刺客信条3游戏的时候遇到提示缺少libcef.dll文件的问题。其实遇到这问题还是比较好解决的。 libcrypto-1_1.dll丢失的处理方法 第一种,首…

云存储--1

背景 这一板块主要是讲诉云计算中的存储板块。 那么云存储主要分为三大类:块存储、文件存储、对象存储。 那么,这一章我们来了解一下什么是块存储,以及块存储在云计算当中的使用场景。 1、 什么是块存储? 我们来思考一个场景&a…

Spring Boot集成MyBatis

1.整合Durid数据源 1、引入Jar包 2.application.yml配置 3.读取配置类DruidConfig 总结:其实没有必要一个个手动去配置, druid 启动starter druid 自动配置类 2.整合MyBatis 2.1生成MyBatis代码: pom.xml generatorConfig.xml 运行插件—…

java计算机毕业设计ssm余庆金阳驾校管理系统75wh9(附源码、数据库)

java计算机毕业设计ssm余庆金阳驾校管理系统75wh9(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#…

看完这篇,轻松编写Markdown

攻城狮为什么要会Markdown Markdown是什么 Markdown是一种轻量级标记语言,创始人为约翰格鲁伯(John Gruber)。它允许人们使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者HTML)文档。这种语…

【网络攻防】Linux提权(待更)

Linux提权 文章目录Linux提权1.利用suid提权(1)如何设置suid(2)如何找到设置了suid的程序(3) suid提权2.利用环境变量提权(1)创建拥有 suid 权限的程序(2)劫持…

vue innerHTML 绑定单击事件不生效

在使用 vue时候对 innerHTML进行绑定单击事件&#xff0c;绑定后事件不生效 原代码 div.innerHTML "<el-button sizemini typetext clickhandleUpdate1("JSON.stringify(warnCntItem)") stylecolor: #f56c6c> "warnCntItem.warnCnt"</el-b…

【云计算与大数据技术】分布式协同系统Chubby锁、ZooKeeper在HDFS中的使用讲解(图文解释 超详细)

阿里云Kuafa RPC系统 夸父(Kuafu)是飞天平台内核中负责网络通信的模块&#xff0c;它提供了一 个 RPC 的接口 , 简化编写基于网络的分布式应用 夸父的设计目标是提供高可用(724小时)、大吞吐量(Gigabyte)、高效率、易用(简明 API、多种协议和编程接口)的 RPC服务 Hadoop IPC…

【软件测试】资深测试的建议。初入测试行的小伙伴,准备起航吧......

目录&#xff1a;导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09;前言 大部分初级的岗位&a…