其他分享
首页 > 其他分享> > 集成学习相关面试知识点

集成学习相关面试知识点

作者:互联网

集成学习

该内容由个人整理和归纳,如有不同见解,还望指教~

集成学习方法有哪些?bagging和boosting的区别?(京东)

区别:

提升树的的随机提升版是怎么做的?

在白纸上写下GBDT的原理并介绍下 (京东)

GBDT分类是如何做的?(京东)

GBDT梯度算的干啥的?(京东)

因为在提升树中,当损失函数是平方损失和指数损失函数时,每—步优化是很简单的。但对一般损失函数而言 , 往往每一步优化并不那么容易。所以提出了梯度提升 (gradient boosting) 算法.这是利用最速下降法的近似方法 ,其关键是利用损失函数的负梯度在当前模型的值作为回归问题提升树算法中的残差的近似值,拟合一个回归树。对于平方损失函数,其梯度就是残差。而对于其他损失函数,其梯度可以近似为残差。

和其余的boosting方法有什么区别 (京东)

XGBoost 为何采用泰勒二次展开?不是一次或三次?/ XGBOOST相比GBDT多用了二阶导信息,计算更复杂了啊,为啥还要用? (京东)

因为二次展开已经能近似大部分的损失函数了,所以不需要再变成更多层次的展开了。且展开越多项,对损失函数的多阶可导要求也就越高。

XGBoost如何寻找最优特征?是有放回还是无放回的呢?

XGBoost在训练的过程中给出各个特征的评分,从而表明每个特征对模型训练的重要性。

XGBoost利用梯度优化模型算法, 样本是不放回的,想象一个样本连续重复抽出,梯度来回踏步,这显然不利于收敛。

XGBoost支持子采样, 也就是每轮计算可以不使用全部样本。

XGBoost 如何提升计算速度?

XGBoost 的一些内部优化

XGBoost 防止过拟合的方法

xgboost适合处理哪些场景的问题?(贝壳)

模型类型来说,回归和分类都可以;按任务类型来说结构化数据,nlp,推荐,排序都可以。

XGBoost 和 GBDT 的区别?(微软,说的要有条理,有哪些算法优化,哪些工程实现优化,可以适当扩展提一下lgb)

XGBoost 是 GBDT 的一种工程实现

  1. 基分类器:GBDT 采用的 CART 树,而 XGBoost 还支持线性分类器,相当于在正则化项的LR和线性回归。
  2. 梯度信息:GBDT 只使用了一阶梯度去近似残差,而 XGBoost 采用了加入了二阶梯度的信息,使得残差近似得更快更准。
  3. 正则化:GBDT 中没有正则化相关的设置,而 XGBoost 在目标函数中设置了叶子结点数和叶子结点的权重的L2范数来防止过拟合(预剪枝)。
  4. 损失函数:XGBoost 支持自定义损失函数,要求损失函数二阶可导。
  5. 列采样:GBDT 每次划分使用所有的特征,而 XGBoost 划分时会对列进行采样,防止过拟合。
  6. 缺失值处理:传统 GBDT 中没有做缺失值的处理,而 XGBoost 在选择计算划分时的得分时,不会将缺失值计算进去,而在向下划分时,有一个默认分裂方向会将缺失值分过去。
  7. 并行化:GBDT 没有并行化,而 XGBoost 先将每个特征排序并将其存储为块(block)结构,分裂节点时会在各个块中并行查找最优分裂点,极大提升了训练速度。

Xgboost 和 LightGBM 区别

机器学习-XGBoost和LightGBM

它们都是 GBDT 的一种实现。LightGBM 在 XGBoost 的基础上进行了内存和速度上的优化,在速度和精度上做了一定的权衡。

内存更小:

  • XGBoost 使用预排序后需要记录特征值及其对应样本的统计值的索引,而 LightGBM 使用了直方图算法将特征值转变为 bin 值,且不需要记录特征到样本的索引,将空间复杂度从 O(2*#data) 降低为 O(#bin) ,极大的减少了内存消耗;
  • LightGBM 采用了直方图算法将存储特征值转变为存储 bin 值,降低了内存消耗;
  • LightGBM 在训练过程中采用互斥特征捆绑算法减少了特征数量,降低了内存消耗。

速度更快:

  • LightGBM 采用了直方图算法将遍历样本转变为遍历直方图,极大的降低了时间复杂度;
  • LightGBM 在训练过程中采用单边梯度算法过滤掉梯度小的样本,减少了大量的计算;
  • LightGBM 采用了基于 Leaf-wise 算法的增长策略构建树,减少了很多不必要的计算量;
  • LightGBM 采用优化后的特征并行、数据并行方法加速计算,当数据量非常大的时候还可以采用投票并行的策略;
  • LightGBM 对缓存也进行了优化,增加了 Cache hit 的命中率。

Boosting 算法中的学习率的作用和优缺点?

学习率是正则化的一部分,它可以降低模型更新的速度(需要更多的迭代)。

随机森林的优点

随机森林的适用场景

数据维度相对低(几十维),同时对准确性有较高要求时。(因为不需要很多参数调整就可以达到不错的效果,基本上不知道用什么方法的时候都可以先试一下随机森林。)

各种机器学习算法的应用场景分别是什么(比如朴素贝叶斯、决策树、K 近邻、SVM、逻辑回归最大熵模型)? - xyzh的回答 - 知乎 https://www.zhihu.com/question/26726794/answer/151282052

集成学习的优点

加权平均和简单平均那个更好?

现实任务中训练样本通常不充分或者存在噪声,这就使得加权平均学得的权重不完全可靠。尤其是对于规模比较大的集成学习,要学习的权重比较多,很容易出现过拟合。通常如果个体学习器性能相差较大时,适合使用加权平均法;个体学习器性能相差较近时,适合使用简单平均法。

集成学习方法中,如何进行多样性增强?

一般的思路是在学习过程中引入随机性。常见的做法是:对数据样本、输入属性、输出表示、算法参数进行扰动。

  1. 数据样本扰动:给定初始数据集,可以从中产生出不同的数据子集。再利用不同的数据子集训练出不同的个体学习器。

    • 数据样本扰动通常是基于采样法,此类做法简单高效、使用最广。

    • 对于常见的基学习器,如决策树、神经网络等,训练样本稍加变化就会导致学习器有显著的变动,数据样本扰动法对这样的“不稳定基学习器”很有效

    • 对于一些基学习器对数据样本的扰动不敏感,如线性学习器、支持向量机、朴素贝叶斯、 近邻学习器等,这样的基学习器称作稳定基学习器。

      对于此类的基学习器进行集成往往需要使用输入属性扰动等其他机制。

  2. 输入属性扰动:训练样本通常由一组属性描述,不同的“子空间”提供了观察数据的不同视角。显然从不同子空间训练出来的个体学习器必然有所不同。

    • 对于包含了大量冗余属性的数据,在子空间中训练个体学习器不仅能够产生多样性大的个体,还会因为属性数量的减少而大幅节省时间开销。

      同时由于冗余属性多,减少一些属性之后训练的个体学习器也不至于太差。

    • 对于只包含少量属性的数据,或者冗余属性较少,则不宜采用输入属性扰动法。

  3. 输出表示扰动:此类做法的思路是对输出表示进行操纵以增强多样性。

    如:可以对训练样本的类标记稍作变动,如翻转法Flipping Output随机改变一些训练样本的标记。

  4. 算法参数扰动:基学习算法一般都有超参数需要设置。可以通过随机设置不同的超参数,从而产生差别较大的个体学习器。

    使用单一学习器时通常需要使用交叉验证等方法来确定最佳的超参数值。这种做法实际上是用了不同的超参数训练出来了多个学习器,只不过最终挑选出来效果最好的那个学习器来使用。

    集成学习则是相当于把所有这些学习器都利用起来。

  5. 不同的多样性增强机制可以同时使用。如随机森林同时是用了数据样本扰动和输入属性扰动。

RF vs GBT

  1. 从模型框架的角度来看:

    • 梯度提升树GBTboosting 模型,多个学习器串行生成。
    • 随机森林RFbagging 模型,多个学习器并行生成。
  2. 从偏差分解的角度来看:

    • 梯度提升树GBT 采用弱分类器(高偏差,低方差)。梯度提升树综合了这些弱分类器,在每一步的过程中降低了偏差,但是保持低方差。可能会过拟合。
    • 随机森林 RF 采用完全成长的子决策树(低偏差,高方差)。随机森林要求这些子树之间尽可能无关,从而综合之后能降低方差,但是保持低偏差。树的数目多时,不会过拟合。
  3. 从采样方式看:

    • 提升树 GBT 采用了所有数据和所有特征对学习器进行训练 (XGBoost 没有)。
    • 随机森林在样本上采用的bootstrap采样,同时在特征上也会进行采样,会得到多个数据集,每个数据集会训练得到一个学习器。
  4. 如果在梯度提升树和随机森林之间二选一,几乎总是建议选择梯度提升树。

    • 随机森林的优点:天然的支持并行计算,因为每个子树都是独立的计算。

    • 梯度提升树的优点:

      • 梯度提升树采用更少的子树来获得更好的精度。

        因为在每轮迭代中,梯度提升树会完全接受现有树(投票权为1)。而随机森林中每棵树都是同等重要的(无论它们表现的好坏),它们的投票权都是 \(\frac{1}{N}\),因此不是完全接受的。

      • 梯度提升树也可以修改从而实现并行化。

      • 梯度提升树有一个明确的数学模型。因此任何能写出梯度的任务,都可以应用梯度提升树(比如 ranking 任务)。而随机森林并没有一个明确的数学模型。

标签:集成,知识点,样本,梯度,XGBoost,学习,面试,算法,随机
来源: https://www.cnblogs.com/IO382/p/15806219.html