AB Test数学原理及金融风控应用

1 什么是AB Test

  AB测试是一种常用的实验设计方法,用于比较两个或多个不同处理或策略的效果,以确定哪个处理或策略在某个指标上表现更好。在AB测试中,将随机选择一部分用户或样本,将其分为两个或多个组,每个组应用不同的处理或策略,然后比较它们的结果。

​  AB测试可以应用于各种领域,如产品优化、营销策略、用户体验等。它是一种科学而有效的方法,可以帮助组织做出基于数据和实验证据的决策,优化业务结果。

​  在金融风控领域,AB Test 虽然不想互联网电商、广告、营销应用那么广泛,但是在整个风控体系中也是必不可少的一个环节。比如在贷前准入环节,我们会将目标定在降低逾期率或者提升通过率;在贷中环节,模型迭代优化;在贷后环节,尝试采取不同的催收策略等。那么如何验证这些新策略是否有效?,除了离线验证外,我们通常在线上进行AB Test对比实验,检验新策略效果是否显著。

2 AB Test专业名词的通俗解释

   显著性水平α:犯第一类错误的概率,显著性水平(通常表示为α)是在假设检验中使用的一个阈值,用于判断观察到的统计结果是否足够显著。常见的显著性水平有0.05和0.01。通过设定显著性水平,我们可以控制错误发现的概率。如果p值小于或等于显著性水平,我们可以拒绝零假设并认为结果是显著的。

   解释:举个例子来说,假设我们进行了一个A/B测试,比较了两种广告的点击率。我们设定显著性水平为0.05。如果计算得到的p值为0.03,小于显著性水平,那么我们可以认为两种广告的点击率存在显著差

   置信水平(置信度):把没有犯第一类错误的概率 1-α 成为置信水平,也就是有多大把握认为变量的真值存在于我们计算出的这个范围内。

   置信区间:在置信水平下计算出的变量存在的范围。
   比如,在95%的置信度下,我们可以不严谨地认为95%的把握算出的置信区间包含变量的真值。实际含义是随机抽取100个样本算出来的100个置信区间有95个是包含真值的。置信区间可以帮助我们评估估计值的稳定性和准确性。较宽的置信区间表示估计值的不确定性较高,而较窄的置信区间表示估计值的不确定性较低。

   总结起来,显著性水平用于判断统计结果的显著性,而置信区间用于估计参数值的范围。两者在统计分析中都起着重要的作用

   统计功效 (1-β ):不犯第二类错误的概率,一般情况下,β取值为0.2,则统计功效的取值为0.8,表示在零假设为假的情况下,能够正确拒绝零假设的概率。简而言之,统计功效反映了一个实验或检验能够检测到效应的能力。在假设检验中,通常有两种错误,即第一类错误和第二类错误。第一类错误是错误地拒绝了真实的零假设,而第二类错误是未能拒绝错误的零假设。统计功效 (1-β) 衡量了避免第二类错误的能力,也就是正确拒绝零假设的概率。

   通常情况下,我们希望统计功效越高越好,因为这意味着我们能够更准确地检测到效应的存在。较高的统计功效意味着我们有更大的概率正确地拒绝零假设,从而得出正确的结论。

   假设有一家公司想要测试一种新的广告策略是否能够提高产品销量。他们进行了一次实验,将一部分用户随机分配到实验组,实验组展示新的广告策略,而将另一部分用户分配到对照组,对照组继续展示原有的广告策略。然后收集了一段时间内的销售数据。

   在这个案例中,统计功效可以解释为,如果新广告策略确实能够显著提高产品销量,那么进行这个实验时,我们有多大的概率能够正确地检测到这种效应。如果统计功效较高,即接近于1,那么在实验中我们有很高的概率能够发现广告策略的改进效果,并得出正确的结论。相反,如果统计功效较低,我们可能无法正确地检测到效应,从而无法得出准确的结论。

   因此,统计功效是在实验设计和假设检验中需要考虑的重要指标,它反映了我们能够发现效应并作出正确决策的能力

   p-value:在零假设成立的条件下,检验统计量Z出现给定观测值或者比之更极端值的概率。它用于衡量样本数据与零假设之间的差异,如果P-value小于α,则拒绝原假设,接受备择假设。

   P值的计算方法取决于所使用的统计检验方法。以下是几种常见的统计检验方法及其对应的P值计算公式:

  1. Z检验: 当总体标准差已知,样本容量较大时,可使用Z检验。P值可通过标准正态分布的累积分布函数(CDF)计算得出。 P值 = 1 - CDF(z),其中z为计算得到的检验统计量。
  2. T检验: 当总体标准差未知,样本容量较小时(一般小于30),可使用T检验。P值的计算需要使用t分布的累积分布函数(CDF)。 P值 = 1 - CDF(t),其中t为计算得到的检验统计量。
  3. 卡方检验: 卡方检验用于比较观察频数和期望频数之间的差异。P值可以通过卡方分布的累积分布函数(CDF)计算得出。
  4. F检验: F检验用于比较两个或多个样本方差是否有显著差异。P值可以通过F分布的累积分布函数(CDF)计算得出。

   需要注意的是,不同的统计检验方法有不同的P值计算公式,具体的计算方法需要根据所使用的检验方法来确定。此外,还需注意P值的解释,一般情况下,较小的P值表示观察到的差异更加显著。通常将P值小于设定的显著性水平(如0.05)视为拒绝零假设,认为观察到的差异是显著的。

在这里插入图片描述

3 AB Test的统计学知识

大数定理——伯努利大数定律

​   随着试验次数增多,在某种收敛意义下,频率的极限是概率,比如当试验次数或者样本足够大时,如果一个电商广告的点击率是3%,那么当一个新的用户过来,我们认为它点击这个广告的概率为3%。

中心极限定理

​   对独立同分布且有相同期望和方差的n个随机变量,当样本量足够大时,样本的均值近似服从正态分布

​   在AB测试中,我们通常涉及对两个或多个样本的均值进行比较。通过中心极限定理,我们可以推断样本均值的分布接近正态分布,这对于进行统计推断非常重要。具体而言,中心极限定理的作用包括:

  1. 提供了假设检验的基础:在AB测试中,我们通常需要对比两个样本的均值是否存在显著差异。通过中心极限定理,我们可以假设样本均值的分布近似为正态分布,从而使用正态分布的性质进行假设检验
  2. 支持参数估计:通过中心极限定理,我们可以使用样本均值的分布来进行总体均值的估计。根据中心极限定理,样本均值的分布接近正态分布,我们可以利用这一性质计算置信区间,对总体均值进行估计。
  3. 辅助统计推断:中心极限定理还为其他统计推断提供了基础。例如,它为计算样本标准差提供了依据,从而进行方差分析或回归分析等统计方法。

​   中心极限定理的数学证明和推理过程十分复杂,我们只需要记住最核心的内容:不管随机变量的概率分布是什么,只要取样时的样本量足够大,那么这些样本的平均值的分布就会趋近于正态分布。
​   那么,这个足够大的样本量到底需要多大?统计上约定样本量大于 30 就属于足够大了。在当下的大数据时代,样本量一般都能轻松超过 30 这个阈值,所以均值类指标可以近似为正态分布。

4 AB Test 一般流程

流程中的重点环节:
在这里插入图片描述

4.1: 实验变量的确定:

​   首先要确定要验证的实验变量是什么,一般遵循"单一变量"原则。即实验组和对照组需要保证除了实验变量不同之外,其他变量因素应该保持一致,也就是控制变量法,这样便于定位问题可能是哪个变量引起的。

4.2: 核心指标确定(观测指标):

​   观测指标分为两类:数值类指标和比率类指标。绝对值类平均停留时长,用户平均消费金额等。比率类指标有点击率、转化率和留存率等。不同类型的观测指标计算样本量的时候计算公式有所差异,因此不同类型的观测指标要有所区分

4.3: 计算实验样本量和实验周期:

​   实验样本越大,实验结果越可靠,但同时承担的风险(对用户产生不良的用户体验等)也越大,但如果实验样本太小,实验结果就不可靠,实验就毫无意义,因此需要计算能够使实验结果可靠的最少样本量。最小样本量的计算方法如下

在这里插入图片描述

这些理论具体到 A/B 测试实践中,经验结论是均值类指标一般用 T 检验,概率类指标一般用 Z 检验(比例检验)

问题:均值类指标一般用 T 检验,概率类指标一般用 Z 检验?见本文第6节的常问面试题解答。

case 1:对于绝对值指标

​   某网站叶念的平均停留时长的标准差是20秒,优化了商品详情页面后,预估至少有5秒的绝对提升,AB Test 实验每个组需要的最少样本量:

​   σ = 20, δ = 5

​   每个组所需的最少样本量 = 8 *20*20*2/(5*5) = 256

case 2:对于比率类指标

​   某网站页点击率为20%,产品进行优化后,预期点击率提升到25%,AB Test测试每个组需要的最少样本量:

​   对照组PA:20%,实验组PB:25%

​   每个组所需的最少样本量 = 8 *(20% *(1-20%)+25%*(1-25%)) / (25%-20%) ^2 = 1030

在线样本计算链接:https://www.evanmiller.org/ab-testing/sample-size.html

4.4: 数据分流:

​   流量分割需遵循均匀分配的原则,就是保证实验组和对照组的用户群体特征保持一致,否则可能出现辛普森悖论,导致实验结果无意义。

备注

​  辛普森悖论的解释:即在某个条件下的两组数据,分别讨论时都会满足某种性质,可是一旦合并考虑,却可能导致相反的结论

4.5: 实验周期:

​  实验周期根据最小样本量和线上数据,如进件数,活跃用户数等来共同决定

4.6: 数据统计:

• AB测试灰度:一般在上线正式实验之前,会通过小流量去看一段时间的灰度实验。这个灰度实验的主要目的就是为了提前观测新的改动策略是否有极端影响

• AB测试灰度上线:和负责人确定正式上线的日期

• 效果验证评估:使用假设检验方法通过构造统计量或者p-value来判断实验结果的核心指标是否有显著差异
4.7: 效果验证:

​   AB Test 主要采用假设检验来计算指标的置信度,实际上,要验证的是⼀对相互对立的假设:原假设和备择假设。

​   零假设 H0(也叫原假设):是实验者想要收集证据予以反对的假设。A/B实验中的原假设就是 指「新策略没有效果」。

​   备选假设 H1:是实验者想要收集证据予以⽀持的假设,与原假设互斥。A/B实验中的备择假设就是指「新策略有效果」。
​  利用反证法来检验假设,意味着我们要利⽤现有的数据,通过⼀系列⽅法证明原假设是错误的即证伪,并借此证明备择假设是正确的(真)。这⼀套方法在统计学上被称作原假设显著性检验。

​  统计学上认为小概率事件在少量实验中是几乎不可能出现的,因此当假设原假设成立时,通过计算发现实验结果发生的概率太小了(p-value < α),但实际实验发生了,那么推翻原假设,接受备择假设

4.7 检验方式

  1. 假设检验一(零假设 H0):在对照组和实验组之间不存在显著差异。
    • H0:实验组的指标与对照组相同(或差异不显著)。
    • H1:实验组的指标与对照组存在显著差异。
  2. 假设检验二(双侧假设):实验组的指标与对照组存在显著差异,但方向未知。
    • H0:实验组的指标与对照组相同。
    • H1:实验组的指标与对照组存在显著差异。
  3. 假设检验三(单侧假设):实验组的指标比对照组更好(或更差)。
    • H0:实验组的指标与对照组相同(或更差)。
    • H1:实验组的指标更好(或更差)。

总结

检验方式分为两种:双侧检验和单侧检验。

单侧检验又分为两种:左侧检验和右侧检验。

双侧检验:备择假设没有特定的⽅向性,形式为≠这种检验称为双侧检验。

单侧检验:备择假设带有特定的方向性,形式为> 或<的假设检验,其中单侧检验< 称为左侧检验,>为右侧检验

在这里插入图片描述
问题:为什么在 A/B 测试的实践中,更推荐使用双尾检验?见本文第6节的常问面试题解答。

4.8 检验方法

检验方法主要有两种:置信区间法和 p 值检验法。

(1)置信区间法

​  在给定显著性水平 α 下,通过给出未知参数一个估计量,然后根据这个估计量构造一个统计量 Z ,它在原假设下的分布是完全已经的或分位数可以计算,称符合这个要求的统计量为检验统计量,如果根据样本数据算出检验统计量落在了置信区间(非拒绝域),则接受原假设,否则拒绝原假设。基本步骤如下:

1、建立假设

2、给出未知参数的一个估计量

3、构造统计量Z,要求当H0成立时可以求解的Z的分位数

4、以Z为基础,根据备择假设的实际意义,构造一个拒绝域W的表达形式

5、确定拒绝域W中的临界值,要求W满足显著性水平。

6、如果根据样本数据算出来的统计量Z落在拒绝域(落在了置信区间),则拒绝原假设,否则接受原假设。

(2) p值和p值检验法
​  假设检验的 p 值是在原假设H0成立的条件下,检验统计量Z出现给定观测值或者比之更极端值的概率,直观上用以描述抽样结果与理论假设的吻合程度,因而也称P值为拟合优度。
​  例如,正态总体参数检验H0:μ=μ0↔H1:μ≠μ0的情况,检验统计量为Z,即由样本数据得到检验统计量Z的观测值为z*,则p值为p=P(|Z|≥z*|H0成立)。p值检验法的原则是当p值小到一定程度(p<=α)时拒绝H0。通常约定:p≤0.05称结果为显著;p≤0.01则称结果为高度显著

5:金融风控实际案例

​​  以原有贷后缓崔策略为例,原有的贷后催收是无差别的,逾期3天以内的进行IVR催收,逾期3天以上进行电话催收。对数据进行分析后发现,3-7天有些用户及时没有接通IVR也会还款,而且客户占比较大。新的贷后催收策略是将客户逾期7天以内的部分客户进行IVR催收,其余的进行人工催收,这样可以集中催收力量在逾期初期加大力度对’不容易’催收的客户进行催收,比较容易’自愈’的客户进行缓催。

​  思路分析: AB Test的前提是两部分数据样本来自同分布,另外要求两个数据尽量的一致,也就要求再流量切分的时候要确保两部分的客户尽量的“资质一致”。另外,还要考虑客户的还款可能与客户借款额度、利率的关系。因此在数据分流的时候也要检验这部分。最后,为了验证最终结果有效性,还需要检验客户的接通率。只有这些条件都满足一致性检验,我们才能确定新策略的有效性。也就是改变其我们测试的规则,但其他规则都保持一致。

​  原始催收策略:客户逾期3天及以上进行无差别的电话催收。
​  新的策略:在客户逾期两天后进行缓催模型打分,分数较高的一部分不进行人工催收只是进行IVR催收,分数较低的部分直接进行人工催收,到第七天开始全部未还款客户进行人工催收。

​  数据分流:我们将逾期两天后的客群跑贷后自愈模型评分模型,按照测算的留下来接着自愈的客群分数cutoff点,将客群分成自愈客群和非自愈客群,将两个客群进行随机分成实验组和对照组。最后确保科学的分组,即实验组和对照组,两组分的客群自愈客群占比一致,然后再检验客群的授信额度,利率,接通率是否一致,最后验证新的方案是否显著。

​  样本量确定

  • Statistical power:统计功效,实验中最想得到的结果。
  • Significance level:显著水平
  • Baseline rate:实验前的历史数据
  • Minimum detectable effect:最小可探测效应

参数通俗解释

  • Statistical power(1-β):越大越好,一般不小于80%,也就是说β需要小于20%

  • Significance level :越小越好,一般不大于5%

  • Baseline rate:假设,我们需要测试普通人群精选人群的点击率差异,那么普通人群的历史点击率就是baseline rate,当baseline rate越大或者越小时,实验越能监测出差别,比如说历史点击率是98%,新的人群略微有几个人不点击,这个点击率就会下降很大(power变大),当power不变时,只需要较少的样本量

  • 也就是说,两个人群的点击率,最小出现多少偏差,才能监测出有差异。理论上来说,监测更大的差异更为容易,需要的样本量更少,监测更小差异,更难,需要的样本量也就更大。举个例子,一个人移动了1米你一眼就能发觉,一个人只移动了1厘米,你就需要花更多的时间检查了。
    在这里插入图片描述

因此,用来检验的样本需要46606*2=93212个客户。

5.1 客观条件检验

​ 在计算得到最小样本数量后,需要检验两个客群的“资质”是否一致,这里面会检验两个客群模型分数自愈客群占比,额度分布,利率分布,接通率(这里的接通率是指IVR或者人工电话接通率)是否一致。

按照最小样本的要求,实验组和对照组各抽取50000条样本,结果如下:

数量自愈客户非自愈客户
实验组500001480035200
对照组500001485035150

5.2 自愈占比检验:

通过上图可以检出实验组自愈客户的占比为p1 = 14800/50000=29.6%,对照组自愈客户的占比为p2=14850/50000=29.7%。

做出假设检验,设定α=0.05,

H0: p1=p2

H1: p1!=p2

在这里插入图片描述

因为p>α=0.05,可以认为实验组和对照组在自愈模型分数cutoff点以上的客户占比是一致的,因此不能拒绝原假设。

5.3 额度分布检验

H0: 两个额度分布一致

H1: 两个额度分布不一致

在这里插入图片描述

因为p>α=0.05,所以认为实验组和对照组的额度不存在显著差异,因此不能拒绝原假设

5.4 利率分布检验

H0:两个利率分布一致

H1:两个利率分布不一致

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZTRjlT1D-1685158138757)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20230527105150829.png)]

因为p>α=0.05,所以认为实验组和对照组的额度不存在显著差异,因此不能拒绝原假设

5.5 接通率检验

数量接听客户未接听客户
实验组500003736512635
对照组500003716012840

通过上图可以检出实验组接通客户的占比为p1 = 36065/50000=0.7213,对照组接通客户的占比为p2=37160/50000=0.7432

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQuMqAZr-1685158138757)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20230527105602110.png)]

p>α=0.05,可以认为实验组和对照组接通率一致,因此不能拒绝原假设。

以上,我们检验了影响客群分布的所有指标,并且通过了检验,我们可以认为实验组和对照组两组的客群在分布上是一致的。

5.6 核心指标检验

数量催回客户逾期客户
实验组50000460653935
对照组50000456604340

过上图可以检出实验组催回客户的占比为p1 = 46065/50000=0.9213,对照组催回客户的占比为p2=45660/50000=0.9132。

做出假设检验,设定α=0.05:

H0: p1<p2

H1: p1>=p2

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vbciNqGK-1685158138758)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20230527110729785.png)]

因为p<α,我们可以拒绝原假设,认为新的策略催收率显著的优于老的策略。可以进行线上切换新老策略了。

6:相关问题

在这里插入图片描述

6.1 效果分析统计上是显著的,但实际上线后发现不显著,为什么?

可能的原因是在AB测试当中所选取的样本量过大,哪怕只是一个细微的差异,从纯数理的角度看检测出差异是显著的,但从实际业务角度看,这种显著差异用户是感知不到的。

例如,app的启动时间优化了0.1秒,可能在统计上是显著了,但对于用户来说0.1秒的差异是无法感知的,也没什么实际意义。

6.2 AB测试效果统计上不显著,该怎么办?

第一种选择是继续做实验,增加实验的进组人数,扩大样本量,在分析结果是否还是不显著,可能是样本量不足的原因。

第二种选择是将观测指标拆分成每一天观察实验组和对照组,如果指标的变化曲线显示每一天实验组均高于对照组,即使在统计上是不显著的,我们也认为在观测周期内,实验组的核心指标表现优于对照组,最终也可以得出正式上线的结论。

6.3 AB测试效果分析发现核心指标是显著的,但辅助指标是负向变化的,该如何向产品同事解释?

比如,为了提升公司的营收,在公司产品的某个app内嵌入了广告,但这种增加营收的方式是以降低用户的使用体验的代价来进行的,因此一个方面的优化可能会导致另一方面的劣化。

6.4 AB Test 涉及的统计检验

在AB测试中,t检验和z检验是用于比较两个样本均值是否存在显著差异的统计方法。它们在处理不同情况下的样本大小和总体参数已知与未知方面有所区别。

t检验(Student’s t-test)适用于样本容量较小(一般小于30)的情况,且总体方差未知。它通过计算样本均值之间的差异与标准误差的比值,得到t值,并与t分布的临界值进行比较,从而判断两个样本均值之间是否存在显著差异。

举个案例来说明:假设我们想要比较一种新的广告策略(组A)和传统广告策略(组B)对销售额的影响。我们将随机选择一部分用户分别展示组A和组B的广告,并记录他们的购买金额。通过收集的数据,我们计算出组A的平均销售额为1000元,组B的平均销售额为900元。我们可以使用t检验来判断这两个样本均值是否存在显著差异,以确定是否可以推断出新的广告策略对销售额产生了显著影响。

z检验(Z-test)适用于样本容量较大(一般大于30)的情况,或已知总体方差的情况。它通过计算样本均值之间的差异与标准误差的比值,得到z值,并与标准正态分布的临界值进行比较,从而判断两个样本均值之间是否存在显著差异。

举个案例来说明:假设我们想要比较一个新药物对疾病的治疗效果。我们将随机选择一部分患者接受新药物治疗,并记录他们的治疗效果指标值。通过收集的数据,我们计算出新药物组的平均治疗效果指标为80,而对照组的平均治疗效果指标为70。由于样本容量较大且总体方差已知,我们可以使用z检验来判断这两个样本均值是否存在显著差异,以确定新药物是否对疾病的治疗效果有显著影响。

总结起来,t检验和z检验都是用于比较样本均值的统计方法,用于判断两个样本均值之间是否存在显著差异。t检验适用于样本容量较小且总体方差

6.5 统计学中 P值结果是否收到样本量影响

P值的计算结果受到样本量的影响。样本量越大,观察到的差异相对于总体的变异性更具代表性,因此P值可能会变得更小。

当样本量较小时,即使观察到的差异较大,由于样本容量较小,可能存在较大的随机误差,导致P值较大,无法拒绝零假设。随着样本量的增加,观察到的差异相对于随机误差的影响会增强,P值可能会减小,使得结果更加显著。

因此,样本量的大小在统计推断中是一个重要的考虑因素。较大的样本量可以提供更可靠的结果,减小随机误差的影响,并增加检验的功效。当设计和执行AB测试或其他统计推断时,应尽可能确保样本量足够大,以获得可靠的P值和推断结论

6.6 为什么在 A/B 测试的实践中,更推荐使用双尾检验?

第一个原因是,双尾检验可以让数据自身在决策中发挥更大的作用

我们在实践中使用 A/B 测试,就是希望能够通过数据来驱动决策。我们要尽量减少在使用数据前产生的任何主观想法来干扰数据发挥作用。所以,双尾检验这种不需要我们明确谁大谁小的检验,更能发挥数据的作用。

第二个原因是,双尾检验可以帮助我们全面考虑变化带来的正、负面结果

在实践中,我们期望改变可以使指标朝着好的方向变化,但是万一指标实际的变化与期望的正好相反呢?这就可以体现双尾检验的优势了。双尾检验可以同时照顾到正面和负面的结果,更接近多变的现实情况。但是单尾检验只会适用于其中一种,而且通常是我们期望的正面效果。

6.7 均值类指标一般用 T 检验,概率类指标一般用 Z 检验?

样本量足够大时,均值类指标服从正态分布,正态分布的总体方差的计算需要知道总体中各个数据的值,这在现实中几乎做不到,因为我们能获取的只是样本数据。所以均值类指标总体方差不可知,选用 T 检验。

概率类指标服从二项分布,二项分布的总体方差的计算不需要知道总体中各个数据的值,可通过样本数据求得总体方差,而且现实中 A/B 测试的样本量一般都远大于 30,所以选用 Z 检验。这里的比例检验(Proportion Test) 是,专指用于检验概率类指标的 Z 检验

参考文章:

https://www.evanmiller.org/how-not-to-run-an-ab-test.html
https://zhuanlan.zhihu.com/p/512949148
https://mp.weixin.qq.com/s/aXud8naTtWHk9e6C2S887A

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java: IO流

1.定义 IO流:存储和读取数据的解决方案 用于读写文件中的数据&#xff08;可以读写文件&#xff0c;或网络中的数据...) 2.IO流的分类 1.按着流的方向 1.输入流&#xff1a;读取 2.输出流&#xff1a;写出 2.按照操作文件类型 1.字节流&#xff1a;所有类型文件 体系&…

机器学习-5 朴素贝叶斯算法

朴素贝叶斯算法 算法概述数理统计学处理的信息古典学派和贝叶斯学派的争论贝叶斯定理朴素贝叶斯分类训练朴素贝叶斯&#xff1a;朴素假设案例&#xff1a;预测打网球拉普拉斯平滑技术小结 算法流程与步骤算法应用sklearn中的朴素贝叶斯朴素贝叶斯的使用算法实例 算法概述 数理…

【服务器】使用Nodejs搭建HTTP web服务器

Yan-英杰的主页 悟已往之不谏 知来者之可追 C程序员&#xff0c;2024届电子信息研究生 目录 前言 1.安装Node.js环境 2.创建node.js服务 3. 访问node.js 服务 4.内网穿透 4.1 安装配置cpolar内网穿透 4.2 创建隧道映射本地端口 5.固定公网地址 [TOC] 转载自内网穿透…

一个完整的APP定制开发流程是怎样的?

随着移动互联网的发展&#xff0c;越来越多的 APP应用软件进入人们的生活&#xff0c;让我们的生活更便捷、更舒适。而随着互联网技术的进步&#xff0c;移动互联网应用软件开发行业也越来越成熟&#xff0c;为了适应市场需求&#xff0c;各种功能强大、性能良好的 APP应用软件…

C/C++ ---- 内存管理

目录 C/C内存分布 常见区域介绍 经典习题&#xff08;读代码回答问题&#xff09; 选择题 填空题 C语言内存管理方式 malloc/free calloc realloc C内存管理方式 new和delete操作内置类型 new和delete操作自定义类型 operator new和operator delete函数 new和dele…

C++11常用的一部分新特性

C11 统一的列表初始化&#xff5b;&#xff5d;初始化std::initializer_list 声明autodecltypenullptr STL中一些变化新容器已有容器的新接口 右值引用和移动语义左值引用和右值引用右值引用使用场景和意义右值引用引用左值及其一些更深入的使用场景分析完美转发 新的类功能默认…

opencv_c++学习(二十四)

一、积分图像 积分图像是对原图像进行积分操作的算法。如上图左所示&#xff0c;不同颜色代表不同区域。当我们想求取一个像素点的积分值时&#xff0c;我们需要求取该点左上方区域的数据之和&#xff0c;如P0的积分值是浅蓝色区域的数据之和。 P1的积分值为蓝色和橙色区域的数…

网页JS自动化脚本(八)使用网页专属数据库indexedDB进行数据收集

我们在网页上进行的活动,往往都需要进行收集一些简单的数据,但是因为浏览器的安全原因,浏览器基本上是无法与本地的操作系统直接产生数据交互的,这本来就是一个由于安全问题生产的无解问题,在浏览器里面是内置了几种数据库的,其中一种就是indexedDB,可以用来储存一些非常小的数…

C++进阶 —— 线程库(C++11新特性)

十&#xff0c;线程库 thread类的简单介绍 在C11之前涉及多线程问题&#xff0c;都是和平台相关的&#xff0c;如windows和Linux下各有自己的接口&#xff0c;这使代码的可移植性较差&#xff1b;C11中最重要的特性就是对线程进行支持&#xff0c;使得C在并行编程时不需要依赖…

Axure教程—水平方向多色图(中继器)

本文将教大家如何用AXURE制作动态水平方向多色图 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://l83ucp.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87822666 二、功能介绍 简单填写中继器内容即可生成动态水平多色…

Linux-模拟一个简单的shell

什么是shell外壳&#xff1f;就是操作系统给我们的一个命令行解释器&#xff0c;在Linux系统中&#xff0c;它的shell叫做bash。 那么bash本质是什么呢&#xff1f; 本质就是一个文件&#xff0c;一个进程。 万物皆文件 每个操作系统的shell都是很复杂的&#xff0c;想要…

【Matter】使用chip tool在ESP32-C3上进行matter开发

文章目录 使用chip tool在ESP32-C3上进行matter开发前提准备编译 chip-tool1.激活esp-matter环境2.编译matter所需环境3.构建CHIP TOOL chip-tool client 调试设备说明1.基于 BLE 调试2.通过IP与设备配对3.Trust store4.忘记当前委托的设备 使用chip-tool点灯1.matter环境激活2…

linuxOPS基础_Linux系统的文件目录结构及用途

linux系统文件目录结构 Linux 系统不同于 Windows&#xff0c;没有 C 盘、D 盘、E 盘那么多的盘符&#xff0c;只有一个根目录&#xff08;/&#xff09;&#xff0c;所有的文件&#xff08;资源&#xff09;都存储在以根目录&#xff08;/&#xff09;为树根的树形目录结构中…

【大数据之Hive】四、配置Hive元数据存储到MySQL

需求&#xff1a;   把Hive元数据写道MySQL的metastore数据库中&#xff08;MySQL默认没有metastore数据库&#xff0c;需要提前创建&#xff1a;create database metastore;&#xff09;   连接地址&#xff1a;jdbc:mysql//hadoop102:3306/metastore   驱动&#xff1a…

什么是SOAP

什么是SOAP 什么是SOAP? SOAP (Simple Object Access Protocol) 是一种基于XML的通信协议&#xff0c;用于在网络上交换结构化的信息。它被广泛用于分布式系统中的应用程序间通信。 SOAP定义了一组规范&#xff0c;描述了消息的格式、通信的方式和处理消息的过程。它允许应…

第四章 程序的控制结构

文章目录 第四章 程序的控制结构4.1 程序的三种控制结构4.1.1 程序流程图4.1.2 程序控制结构基础4.1.3 程序控制结构扩展 4.2 程序的多分支结构4.2.1 单分支结构&#xff1a;if4.2.2 二分支结构&#xff1a;if-else4.2.3 多分支结构&#xff1a;if-elif-else4.2.4 判断条件及组…

图及其与图相关的算法

⭐️前言⭐️ 本篇文章主要介绍图及其与图相关的算法 &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 &#x1f349;博客中涉及源码及博主…

智慧档案馆八防是怎么建设的?都需要注意哪些内容

智慧档案馆八防环境监控系统一体化解决系统方案 智慧档案库房一体化平台通过智慧档案管理&#xff0c;实现智慧档案感知协同处置功能&#xff1b;实现对档案实体的智能化识别、定位、跟踪监控&#xff1b;实现对档案至智能密集架、空气恒湿净化一体设备、安防设备&#xff0c…

Linux守护进程

守护进程 Linux/Unix 会话 会话首进程 进程组 组长进程&#xff1a;第一个启动的进程叫组长进程。 关闭终端&#xff1a;进程组里全部进程关闭。 setsid()创建一个新的会话。&#xff08;必须是组员进程才可以创建一个新的会话&#xff09; 1.先fork()&#xff0c;退出父进程 2…

电力系统的虚假数据注入攻击和MTD系统研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…
最新文章