20240330-2-XGBoost面试题

XGBoost面试题

在这里插入图片描述

1. RF和GBDT的区别

相同点:

  • 都是由多棵树组成,最终的结果都是由多棵树一起决定。

不同点:

  • 集成学习 R F RF RF属于 B a g g i n g Bagging Bagging思想,而 G B D T GBDT GBDT B o o s t i n g Boosting Boosting思想
  • 偏差-方差权衡 R F RF RF不断的降低模型的方差,而 G B D T GBDT GBDT不断的降低模型的偏差
  • 并行性 R F RF RF的树可以并行生成,而 G B D T GBDT GBDT只能顺序生成(需要等上一棵树完全生成)
  • 最终结果 R F RF RF最终是多棵树进行多数表决(回归问题是取平均),而 G B D T GBDT GBDT是加权融合
  • 数据敏感性 R F RF RF对异常值不敏感,而 G B D T GBDT GBDT对异常值比较敏感
  • 泛化能力 R F RF RF不易过拟合,而 G B D T GBDT GBDT容易过拟合

2. 比较LR和GBDT,说说什么情景下GBDT不如LR

先说说 L R LR LR G B D T GBDT GBDT的区别:

  • L R LR LR是线性模型,可解释性强,很容易并行化,但学习能力有限,需要大量的人工特征工程
  • G B D T GBDT GBDT是非线性模型,具有天然的特征组合优势,特征表达能力强,但是树与树之间无法并行训练,而且树模型很容易过拟合;

当在高维稀疏特征的场景下, L R LR LR的效果一般会比 G B D T GBDT GBDT。原因如下:

先看一个例子:

假设一个二分类问题,label为0和1,特征有100维,如果有1w个样本,但其中只要10个正样本1,而这些样本的特征 f1的值为全为1,而其余9990条样本的f1特征都为0(在高维稀疏的情况下这种情况很常见)。 我们都知道在这种情况下,树模型很容易优化出一个使用f1特征作为重要分裂节点的树,因为这个结点直接能够将训练数据划分的很好,但是当测试的时候,却会发现效果很差,因为这个特征f1只是刚好偶然间跟y拟合到了这个规律,这也是我们常说的过拟合。

因为现在的模型普遍都会带着正则项, L R LR LR 等线性模型的正则项是对权重的惩罚,也就是 w 1 w_1 w1一旦过大,惩罚就会很大,进一步压缩 w 1 w_1 w1的值,使他不至于过大。但是,树模型则不一样,树模型的惩罚项通常为叶子节点数和深度等,而我们都知道,对于上面这种case,树只需要一个节点就可以完美分割9990和10个样本,一个结点,最终产生的惩罚项极其之小。

这也就是为什么在高维稀疏特征的时候,线性模型会比非线性模型好的原因了:带正则化的线性模型比较不容易对稀疏特征过拟合。

3. 简单介绍一下XGBoost​

X G B o o s t XGBoost XGBoost是大规模、分布式的通用梯度提升(GBDT)库,它在GB框架下实现了GBDT和一些广义线性ML算法。 X G B o o s t XGBoost XGBoost是一种集成学习算法,属于3类常用的集成方法( B a g g i n g Bagging Bagging B o o s t i n g Boosting Boosting S t a c k i n g Stacking Stacking)中的 B o o s t i n g Boosting Boosting算法类别。它是一个加法模型,每次迭代都学习一棵CART树来拟合之前 t-1 棵树的预测结果与训练样本真实值的残差。

X G B o o s t XGBoost XGBoost G B D T GBDT GBDT进行了一系列优化,比如损失函数进行了二阶泰勒展开、目标函数加入正则项、支持并行、默认缺失值处理等,在可扩展性和训练速度上有了巨大的提升,但其核心思想没有大的变化。

4. XGBoost与GBDT有什么不同

  • 基分类器 X G B o o s t XGBoost XGBoost的基分类器不仅支持 C A R T CART CART决策树,还支持线性分类器,此时 X G B o o s t XGBoost XGBoost相当于带 L 1 L1 L1 L 2 L2 L2正则化项的 L R LR LR回归(分类问题)或者线性回归(回归问题)。
  • 导数信息 X G B o o s t XGBoost XGBoost对损失函数做了二阶泰勒展开,可以更为精准的逼近真实的损失函数, G B D T GBDT GBDT只用了一阶导数信息,并且 X G B o o s t XGBoost XGBoost还支持自定义损失函数,只要损失函数一阶、二阶可导。
  • 正则项 X G B o o s t XGBoost XGBoost的目标函数加了正则项, 相当于预剪枝,使得学习出来的模型更加不容易过拟合。
  • 列抽样 X G B o o s t XGBoost XGBoost支持列采样,与随机森林类似,用于防止过拟合。
  • 缺失值处理:对树中的每个非叶子结点, X G B o o s t XGBoost XGBoost可以自动学习出它的默认分裂方向。如果某个样本该特征值缺失,会将其划入默认分支。
  • 并行化:注意不是树维度的并行,而是特征维度的并行。 X G B o o s t XGBoost XGBoost预先将每个特征按特征值排好序,存储为块结构,分裂结点时可以采用多线程并行查找每个特征的最佳分割点,极大提升训练速度。
  • 可扩展性:损失函数支持自定义,只需要新的损失函数二阶可导。

5. XGBoost​为什么可以并行训练

  • 不是说每棵树可以并行训练 X G B o o s t XGBoost XGBoost本质上仍然采用 B o o s t i n g Boosting Boosting思想,每棵树训练前需要等前面的树训练完成才能开始训练。
  • 而是特征维度的并行:在训练之前,每个特征按特征值对样本进行预排序,并存储为block结构,在后面查找特征分割点时可以重复使用,而且特征已经被存储为一个个block结构,那么在寻找每个特征的最佳分割点时,可以利用多线程对每个block并行计算。
  • 注意xgboost的并行不是tree粒度的并行,xgboost也是一次迭代完才能进行下一次迭代的(第t次迭代的代价函数里包含了前面t-1次迭代的预测值)。xgboost的并行是在特征粒度上的。我们知道,决策树的学习最耗时的一个步骤就是对特征的值进行排序(因为要确定最佳分割点),xgboost在训练之前,预先对数据进行了排序,然后保存为block结构,后面的迭代中重复地使用这个结构,大大减小计算量。这个block结构也使得并行成为了可能,在进行节点的分裂时,需要计算每个特征的增益,最终选增益最大的那个特征去做分裂,那么各个特征的增益计算就可以开多线程进行。

6. XGBoost​为什么快?

  • 分块并行:训练前每个特征按特征值进行排序并存储为block结构,后面查找特征分割点时重复使用,并且支持并行查找每个特征的分割点
  • block 处理优化block预先放入内存;block按列进行解压缩;将block划分到不同硬盘来提高吞吐
  • 候选分位点:每个特征采用常数个分位点作为候选分割点
  • CPU cache 命中优化: 使用缓存预取的方法,对每个线程分配一个连续的buffer,读取每个block中样本的梯度信息并存入连续的buffer中。

7. XGBoost​中如何处理过拟合的情况?

  • 目标函数中增加了正则项:使用叶子结点的数目和叶子结点权重的 L 2 L2 L2模的平方,控制树的复杂度。
  • 设置目标函数的增益阈值:如果分裂后目标函数的增益小于该阈值,则不分裂。
  • 设置最小样本权重和的阈值:当引入一次分裂后,重新计算新生成的左、右两个叶子结点的样本权重和。如果任一个叶子结点的样本权重低于某一个阈值(最小样本权重和),也会放弃此次分裂。
  • 设置树的最大深度 X G B o o s t XGBoost XGBoost 先从顶到底建立树直到最大深度,再从底到顶反向检查是否有不满足分裂条件的结点,进行剪枝。
  • shrinkage: 可以叫学习率或步长,为了给后面的训练留出更多的学习空间
  • 子采样:每轮计算可以不使用全部样本,使算法更加保守
  • 列抽样:训练的时候只用一部分特征(不考虑剩余的block块即可)
  • 调参:
    • 第一类参数:用于直接控制模型的复杂度。包括max_depth,min_child_weight,gamma 等参数
    • 第二类参数:用于增加随机性,从而使得模型在训练时对于噪音不敏感。包括subsample,colsample_by树
    • 还有就是直接减小learning rate,但需要同时增加estimator 参数。

8. XGBoost​如何处理缺失值?

X G B o o s t XGBoost XGBoost模型的一个优点就是允许特征存在缺失值。对缺失值的处理方式如下:

  • X G B o o s t XGBoost XGBoost在构建树的节点过程中只考虑非缺失值的数据遍历,而为每个节点增加了一个缺省方向,当样本相应的特征值缺失时,可以被归类到缺省方向上,最优的缺省方向可以从数据中学到。至于如何学到缺省值的分支,其实很简单,分别枚举特征缺省的样本归为左右分支后的增益,选择增益最大的枚举项即为最优缺省方向。
  • 如果在训练中没有缺失值而在预测中出现缺失,那么会自动将缺失值的划分方向放到右子结点
  • 树模型对缺失值的敏感度低,大部分时候可以在数据缺失时时使用

    原因就是:一棵树中每个结点在分裂时,寻找的是某个特征的最佳分裂点(特征值),完全可以不考虑存在特征值缺失的样本,也就是说,如果某些样本缺失的特征值缺失,对寻找最佳分割点的影响不是很大。

9. XGBoost​如何处理不平衡数据?

  • 设置scale_pos_weight来平衡正样本和负样本的权重。例如,当正负样本比例为1:10时,scale_pos_weight可以取10;

  • 你不能重新平衡数据集(会破坏数据的真实分布)的情况下,应该设置max_delta_step为一个有限数字来帮助收敛(基模型为 L R LR LR时有效)。

10. XGBoost​如何选择最佳分裂点?

  • 训练前预先将特征对特征值进行排序,存储为block结构,以便在结点分裂时可以重复使用
  • 采用特征并行的方法利用多个线程分别计算每个特征的最佳分割点,根据每次分裂后产生的增益,最终选择增益最大的那个特征的特征值作为最佳分裂点。
  • X G B o o s t XGBoost XGBoost使用直方图近似算法,对特征排序后仅选择常数个候选分裂位置作为候选分裂点,极大提升了结点分裂时的计算效率。

11. XGBoost​的Scalable性如何体现?

  • 基分类器的scalability:弱分类器可以支持 C A R T CART CART决策树,也可以支持 L R LR LR
  • 目标函数的scalability:支持自定义loss function,只需要其一阶、二阶可导。有这个特性是因为泰勒二阶展开,得到通用的目标函数形式。
  • 学习方法的scalabilityblock结构支持并行化,支持 Out-of-core计算。

12. XGBoost​如何评价特征的重要性?

常用的三种方法来评判模型中特征的重要程度:

  • freq : 频率是表示特定特征在模型树中发生分裂的相对次数的百分比
  • gain : 增益意味着相应的特征对通过对模型中的每个树采取每个特征的贡献而计算出的模型的相对贡献。与其他特征相比,此度量值的较高值意味着它对于生成预测更为重要。
  • cover :覆盖度量指的是与此功能相关的观测的相对数量。例如,如果您有100个观察值,4个特征和3棵树,并且假设特征1分别用于决定树1,树2和树3中10个,5个和2个观察值的叶节点;那么该度量将计算此功能的覆盖范围为 10 + 5 + 2 = 17 10 + 5 + 2 = 17 10+5+2=17个观测值。这将针对所有4项功能进行计算,并将以17个百分比表示所有功能的覆盖指标。

X G B o o s t XGBoost XGBoost是根据gain来做重要性判断的。

14. XGBoost​的优缺点

  • 优点

    • 精度更高: G B D T GBDT GBDT 只用到一阶泰勒展开,而 X G B o o s t XGBoost XGBoost 对损失函数进行了二阶泰勒展开。 X G B o o s t XGBoost XGBoost 引入二阶导一方面是为了增加精度,另一方面也是为了能够自定义损失函数,二阶泰勒展开可以近似大量损失函数;
    • 灵活性更强: G B D T GBDT GBDT C A R T CART CART 作为基分类器, X G B o o s t XGBoost XGBoost 不仅支持 C A R T CART CART 还支持线性分类器,使用线性分类器的 X G B o o s t XGBoost XGBoost 相当于带 和 正则化项的逻辑斯蒂回归(分类问题)或者线性回归(回归问题)。此外, X G B o o s t XGBoost XGBoost 工具支持自定义损失函数,只需函数支持一阶和二阶求导;
    • 正则化: X G B o o s t XGBoost XGBoost 在目标函数中加入了正则项,用于控制模型的复杂度。正则项里包含了树的叶子节点个数、叶子节点权重的 范式。正则项降低了模型的方差,使学习出来的模型更加简单,有助于防止过拟合,这也是 X G B o o s t XGBoost XGBoost优于传统 G B D T GBDT GBDT的一个特性。
    • Shrinkage(缩减): 相当于学习速率。 X G B o o s t XGBoost XGBoost 在进行完一次迭代后,会将叶子节点的权重乘上该系数,主要是为了削弱每棵树的影响,让后面有更大的学习空间。传统 G B D T GBDT GBDT的实现也有学习速率;
    • 列抽样: X G B o o s t XGBoost XGBoost 借鉴了随机森林的做法,支持列抽样,不仅能降低过拟合,还能减少计算。这也是 X G B o o s t XGBoost XGBoost异于传统 G B D T GBDT GBDT的一个特性;
    • 缺失值处理: 对于特征的值有缺失的样本, X G B o o s t XGBoost XGBoost 采用的稀疏感知算法可以自动学习出它的分裂方向;
    • X G B o o s t XGBoost XGBoost工具支持并行: B o o s t i n g Boosting Boosting不是一种串行的结构吗?怎么并行的?注意 X G B o o s t XGBoost XGBoost的并行不是树粒度的并行, X G B o o s t XGBoost XGBoost也是一次迭代完才能进行下一次迭代的(第次迭代的代价函数里包含了前面次迭代的预测值)。 X G B o o s t XGBoost XGBoost的并行是在特征粒度上的。我们知道,决策树的学习最耗时的一个步骤就是对特征的值进行排序(因为要确定最佳分割点), X G B o o s t XGBoost XGBoost在训练之前,预先对数据进行了排序,然后保存为block结构,后面的迭代中重复地使用这个结构,大大减小计算量。这个block结构也使得并行成为了可能,在进行节点的分裂时,需要计算每个特征的增益,最终选增益最大的那个特征去做分裂,那么各个特征的增益计算就可以开多线程进行。
    • 可并行的近似算法: 树节点在进行分裂时,我们需要计算每个特征的每个分割点对应的增益,即用贪心法枚举所有可能的分割点。当数据无法一次载入内存或者在分布式情况下,贪心算法效率就会变得很低,所以 X G B o o s t XGBoost XGBoost还提出了一种可并行的近似算法,用于高效地生成候选的分割点。
  • 缺点

    • 虽然利用预排序和近似算法可以降低寻找最佳分裂点的计算量,但在节点分裂过程中仍需要遍历数据集
    • 预排序过程的空间复杂度过高,不仅需要存储特征值,还需要存储特征对应样本的梯度统计值的索引,相当于消耗了两倍的内存

15. XGBoost​和LightGBM​的区别

  • 树生长策略

    • XGB采用level-wise的分裂策略:XGB对每一层所有节点做无差别分裂,但是可能有些节点增益非常小,对结果影响不大,带来不必要的开销。

    • LGB采用leaf-wise的分裂策略:Leaf-wise是在所有叶子节点中选取分裂收益最大的节点进行的,但是很容易出现过拟合问题,所以需要对最大深度做限制 。

  • 分割点查找算法

    • XGB使用特征预排序算法,LGB使用基于直方图的切分点算法,其优势如下:
      • 减少内存占用,比如离散为256个bin时,只需要用8位整形就可以保存一个样本被映射为哪个bin(这个bin可以说就是转换后的特征),对比预排序的exact greedy算法来说(用int_32来存储索引+ 用float_32保存特征值),可以节省7/8的空间。
      • 计算效率提高,预排序的Exact greedy对每个特征都需要遍历一遍数据,并计算增益。而直方图算法在建立完直方图后,只需要对每个特征遍历直方图即可。
    • LGB还可以使用直方图做差加速,一个节点的直方图可以通过父节点的直方图减去兄弟节点的直方图得到,从而加速计算
  • 直方图算法

    • XGB 在每一层都动态构建直方图, 因为XGB的直方图算法不是针对某个特定的feature,而是所有feature共享一个直方图(每个样本的权重是二阶导),所以每一层都要重新构建直方图。
    • LGB中对每个特征都有一个直方图,所以构建一次直方图就够了
  • 支持离散变量

    • XGB无法直接输入类别型变量因此需要事先对类别型变量进行编码(例如独热编码),
    • LGB可以直接处理类别型变量。
  • 缓存命中率

    • XGB用block结构的一个缺点是取梯度的时候,是通过索引来获取的,而这些梯度的获取顺序是按照特征的大小顺序的,这将导致非连续的内存访问,可能使得CPU cache缓存命中率低,从而影响算法效率。
    • LGB是基于直方图分裂特征的,梯度信息都存储在一个个bin中,所以访问梯度是连续的,缓存命中率高。
  • 并行策略-特征并行

    • XGB每个worker节点中仅有部分的列数据,也就是垂直切分,每个worker寻找局部最佳切分点,worker之间相互通信,然后在具有最佳切分点的worker上进行节点分裂,再由这个节点广播一下被切分到左右节点的样本索引号,其他worker才能开始分裂。
    • LGB特征并行的前提是每个worker留有一份完整的数据集,但是每个worker仅在特征子集上进行最佳切分点的寻找;worker之间需要相互通信,通过比对损失来确定最佳切分点;然后将这个最佳切分点的位置进行全局广播,每个worker进行切分即可。
  • 并行策略-数据并行

    • LGB中先对数据水平切分,每个worker上的数据先建立起局部的直方图,然后合并成全局的直方图,采用直方图相减的方式,先计算样本量少的节点的样本索引,然后直接相减得到另一子节点的样本索引,这个直方图算法使得worker间的通信成本降低一倍,因为只用通信以此样本量少的节点
    • XGB中的数据并行也是水平切分,然后单个worker建立局部直方图,再合并为全局,不同在于根据全局直方图进行各个worker上的节点分裂时会单独计算子节点的样本索引

16. GBDT的拟合值残差为什么用负梯度代替,而不是直接拟合残差

  1. 使用残差拟合只是考虑到损失函数为平方损失的特殊情况,负梯度是更加广义上的拟合项,更具普适性。
  2. 负梯度永远是函数下降最快的方向,自然也是GBDT目标函数下降最快的方向。注意并不是拟合梯度,只是用梯度去拟合。GBDT本来中的G代表Grandient,本来就是用梯度拟合;
  3. 用残差去拟合,只是目标函数是均方误差的一种特殊情况,这个特殊情况跟CART拟合残差一模一样,使得看起来就拟合残差合情合理。
  4. 代价函数除了loss还有正则项,正则中有参数和变量,很多情况下只拟合残差,loss变小但是正则变大,代价函数不一定就小,这时候就要用梯度啦,梯度的本质也是一种方向导数,综合了各个方向(参数)的变化,选择了一个总是最优(下降最快)的方向;
  5. 最后目标函数可表达为由梯度构成,所以说成是拟合梯度,也好像不是不行

17. XGBoost使用二阶泰勒展开的目的和优势

  • XGBoost是以MSE为基础推导出来的,在MSE的情况下,XGBoost的目标函数展开就是一阶项+二阶项的形式,而其他类似Logloss这样的目标函数不能表示成这样形式,为了后续推导的统一,所以将目标函数进行二阶泰勒展开,就可以直接定义损失函数了,只要二阶可导即可,增强了模型的扩展性
  • 二阶信息能够让梯度收敛的更快,拟牛顿法比SGD收敛更快,一阶信息描述梯度变化方向,二阶信息可以描述梯度变化方向是如何变化的。

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

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

相关文章

【数据结构2-线性表】

数据结构2-线性表 1 线性表-数组2 线性表-单链式结构2.1 前插顺序单链表2.2 后插顺序单链表2.3 循环单链表2.4 双向链表 总结 线性表、栈、队列、串和数组都属于线性结构。 线性结构的基本特点是除第一个元素无直接前驱,最后一个元素无直接后继之外,其他…

Django中间件的源码解析流程(上)——中间件载入的前置

目录 1. ​前言​ 2. 请求的入口 3. 中间件加载的入口 4. 源码中的闭包实现 5. 最后 1. 前言 哈喽,大家好,我是小K,今天咋们分享的内容是:在学会Django中间件之后, 我们继续深入底层源码。 在执行中间件时请求到来总是从前往后…

第三方应用类---Phpmyadmin 后台 Getshell 操作

免责声明:本节仅做技术交流学习. 目录 什么是Phpmyadmin? getshell前提条件: 详细步骤: 1-搜集到开放phpmyadmin的web,然后访问进去 2-执行SQL命令查看是否开启了读写权限 3-开启了读写权限-->继续 没有开读写权限--->鸡鸡 4-有读写权限之后,执行SQL语句导出文件…

【Python】函数进阶(纯干货版)

目录 函数的多返回值 多个参数的传递 缺省参数 不定长参数 位置不定长参数传参举例 关键字不定长参数举例 函数作为参数传递 匿名函数 函数的多返回值 在Python中允许一个函数带回多个返回值,写法是一个return 返回值1,返回值2 在接收的时候同样…

快速入门Spring Data JPA

Spring Data JPA是Spring Data框架的一小部分,它能够让开发者能够更加简单的对数据库进行增删改查。 由于Spring Data JPA可以自动生成SQL代码所以一般情况下,简单的增删查改就可以交给Spring Data JPA来完成,而复杂的动态SQL等用MyBatis来完…

软考 系统架构设计师系列知识点之大数据设计理论与实践(14)

接前一篇文章:软考 系统架构设计师系列知识点之大数据设计理论与实践(13) 所属章节: 第19章. 大数据架构设计理论与实践 第4节 Kappa架构 19.4.3 Kappa架构的实现 下面以Apache Kafka为例来讲述整个全新架构的过程。 部署Apach…

解线性方程组——直接解法:LU分解、PLU分解(类似列主元消去法) | 北太天元

L: lower triangular 下三角 U: upper triangular 上三角 LU 分解,顾名思义,为 把一个 矩阵 分成 一个下三角矩阵 乘上一个上三角矩阵的形式。 Example 为什么可以这样 几个基本的初等行变换,可以自己验算一下,等式的左边与右边…

Linux管道共享内存

前言 进程虽然是独立运行的个体,但它们之间有时候需要协作才能完成一项工作,比如有两个进程需要同步数据,进程 A 把数据准备好后,想把数据发往进程 B,进程 B 必须被提前通知有数据即将到来,或者进程 A 想发…

腾讯EdgeOne产品测评体验—金字塔般的网络安全守护神

作为一名对网络安全和性能优化充满热情的用户,我决定体验腾讯云下一代 CDN 服务 - EdgeOne。这款引以为傲的全方位服务如数来到,从域名解析、动静态智能加速到四层加速及DDoS/CC/Web/Bot 防护,一应俱全。随着时代风云变幻,日均数千…

kubernetes1.28版本的二进制安装

前言 二进制部署 Kubernetes(K8s)集群相对于其他部署方式(如基于发行版的包管理器、容器化部署工具等)具有一些优势,主要包括: 灵活性:二进制部署方式更加灵活,您可以根据自己的需…

冯喜运:4.21黄金市场失去正常反应?下周黄金原油解析

【黄金消息面解析 】:周五(4月19日),伊朗媒体似乎淡化了以色列袭击的影响,表明地缘政治风险降低,导致避险资产需求放缓,金价回吐涨幅。本周现货黄金价格上涨超2%。美国黄金期货收盘上涨0.7%,至2413.8美元。…

基于SpringBoot的“火车订票管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“火车订票管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具:IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 前台首页功能界面图 登录、用…

Shapley量化调峰成本?高比例可再生能源电力系统的调峰成本量化与分摊模型程序代码!

前言 在能源安全、环境污染和气候变化的大背景下,大力发展可再生能源是应对全球气候变化,实现“碳达峰、碳中和”和可持续发展的重大需求。截至2020年底,中国风电总装机容量为281GW,风力发电466.5TWh,同比增长约15%&a…

运动想象 (MI) 分类学习系列 (10) :iWSGL-CSP

运动想象分类学习系列:iWSGL-CSP 0. 引言1. 主要贡献2. 提出的方法3. 结果3.1 在3个数据集上的效果3.2 基线比较 4. 总结欢迎来稿 论文地址:https://www.sciencedirect.com/science/article/abs/pii/S0957417423027884 论文题目:Improvement of motor im…

强固型工业电脑在称重系统+叉车电脑,称重量体扫码一体机,物流分拣线工作站行业应用

称重系统叉车电脑行业应用 背景介绍 在叉车上安装称重传感器,通过对举升压力的自动检测,将压力信号转换为电流或电压信号,经过A/D转换,使模拟信号变为数字信号,经微处理器进行数据处理后通过蓝牙、串口或者USB接口将称…

Cucumber基本介绍

Cucumber 是什么? Cucumber是一种支持行为驱动开发(BDD)的工具 Cucumber读取以纯文本编写的可执行规范,并验证软件是否按照这些规范所说的执行。规范由多个示例或场景组成。例如: Feature: 用户登录功能 作为用户&…

生成人工智能体:人类行为的交互式模拟论文与源码架构解析(1)——场景故事介绍

生成NPC为交互应用程序创建逼真的人类行为模拟。在这项工作中,我们通过将二十五个NPC放置在一个沙盒环境中(类似于The Sims,模拟人生),展示了生成NPC的能力。用户可以观察和干预NPC的日常计划、分享新闻、建立关系以及…

随机过程-题目

1.平稳随机过程的统计特姓不随时间的推移而不同,其一维分布与时间无关,二维分布只与时间间隔有关。 2.一个均值为0、方差为的窄带平稳高斯过程,其同相分量和正交分量是平稳高斯过程,均值为0,方差为。 3.均值为0的平稳…

Python 数据结构和算法实用指南(四)

原文:zh.annas-archive.org/md5/66ae3d5970b9b38c5ad770b42fec806d 译者:飞龙 协议:CC BY-NC-SA 4.0 第十二章:字符串算法和技术 根据所解决的问题,有许多流行的字符串处理算法。然而,最重要、最流行和最有…

深度学习--CNN卷积神经网络(附图)

框架 让我们先看一下CNN的框架 卷积层中后是ReLu激活函数 ,然后是深化池,之后是全连接,最后进行Softmax进行归一化。 所以,我们先逐一了解一下它们各个部分 全连接层 全连接层也称感知机,BP神经网络 全连接层&…