面试问题决策树合集

文章目录


● Bagging和boosting的区别 13
参考回答: 13
● XGBOOST和GDBT的区别 14
参考回答: 14
● xgboost的特征重要性计算 14
参考回答: 15
● xgboost的正则项表达式 15
参考回答: 15
● xgboost原理,怎么防过拟合 15
参考回答: 15
● xgboost,rf,lr优缺点有哪些? 18
参考回答: 18
● xgboost特征并行化怎么做的 20
参考回答: 20
● xgboost和lightgbm的区别和适用场景 20
参考回答: 20
● GDBT的原理,以及常用的调参参数 21
参考回答: 21
● AdaBoost和GBDT的区别 21
参考回答: 21
● GBDT推导 22
参考回答: 22
● gbdt推导和适用场景 24
参考回答: 24
● 说一下gbdt的全部算法过程 25
参考回答: 25
rf和gbdt基分类器区别,里面的决策树分别长啥样,怎么剪枝? 26
参考回答: 26
● 随机森林和 GBDT 的区别 28
参考回答: 28
● stacking和blending的区别? 29
参考回答: 29
随机森林如何填充缺失值? 32
10:说一下Adaboost及权值更新公式 33
1.理解kaggle比赛大杀器xgboost 34
2. GBDT、XGBoost、LightGBM的区别和联系 34
3.gging与boosting两种集成模型的偏差bias以及方差variance 的理解 34
4. 提升树(boosting tree)算法的思想 34
7和8:xgboost为什么用泰勒展开(或者相对于GBDT的一阶泰勒展开式,xgboost的优势在哪?)?是有放回选特征吗? 35
请问GBDT和XGBoost的区别是什么? 36
5、集成学习 39
xgboost是用二阶泰勒展开的优势在哪? 49

ID3、C4.5和CART三种决策树的区别

参考回答:
ID3决策树优先选择信息增益大的属性来对样本进行划分,但是这样的分裂节点方法有一个很大的缺点,当一个属性可取值数目较多时,可能在这个属性对应值下的样本只有一个或者很少个,此时它的信息增益将很高,ID3会认为这个属性很适合划分,但实际情况下叫多属性的取值会使模型的泛化能力较差,所以C4.5不采用信息增益作为划分依据,而是采用信息增益率作为划分依据。但是仍不能完全解决以上问题,而是有所改善,这个时候引入了CART树,它使用gini系数作为节点的分裂依据。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

一、决策树的优点和缺点

优点:

  1. 决策树算法中学习简单的决策规则建立决策树模型的过程非常容易理解,
  2. 决策树模型可以可视化,非常直观
  3. 应用范围广,可用于分类和回归,而且非常容易做多类别的分类
  4. 能够处理数值型和连续的样本特征
    缺点:
  5. 很容易在训练数据中生成复杂的树结构,造成过拟合(overfitting)。剪枝可以缓解过拟合的负作用,常用方法是限制树的高度、叶子节点中的最少样本数量。
  6. 学习一棵最优的决策树被认为是NP-Complete问题。实际中的决策树是基于启发式的贪心算法建立的,这种算法不能保证建立全局最优的决策树。Random Forest 引入随机能缓解这个问题

二、决策树思想及生成过程

决策树包含,特征选择、决策树构建、剪枝三个过程
决策树(Decision Tree)的思想是贪心(最优化分) 与 分治(子树划分)。构建决策树的目的是:随着划分过程的进行,使得决策树分支结点所包含的样本尽可能属于同一类别,即使得分类更准确
2. ID3采用的信息增益度量存在一个缺点,它一般会优先选择有较多属性值的Feature,因为属性值多的Feature会有相对较大的信息增益?
(信息增益反映的给定一个条件以后不确定性减少的程度,必然是分得越细的数据集确定性更高,也就是条件熵越小,信息增益越大)
3. 相比ID3,C4.5还能处理连续属性值,具体步骤为:
• 把需要处理的样本(对应根节点)或样本子集(对应子树)按照连续变量的大小从小到大进行排序.
• 假设该属性对应的不同的属性值一共有N个,那么总共有N−1个可能的候选分割阈值点,每个候选的分割阈值点的值为上述排序后的属性值中两两前后连续元素的中点,根据这个分割点把原来连续的属性分成bool属性.实际上可以不用检查所有N−1个分割点,具体请看下面的例子.
• 用信息增益比率选择最佳划分.

三,前后剪枝区别

1 预剪枝
通过提前停止树的构造进行剪枝.
• 树到达一定高度
• 节点下包含的样本点小于一定数目
• 信息增益小于一定的阈值等等
• 节点下所有样本都属于同一个类别
2 后剪枝
后剪枝首先通过完全分裂构造完整的决策树,允许过拟合,然后采取一定的策略来进行剪枝,常用的后剪枝策略包括:
• 降低错误剪枝 REP(Reduced Error Pruning)
• 悲观错误剪枝 PEP(Pessimistic Error Pruning)
• 基于错误剪枝 EBP(Error Based Pruning)
• 代价-复杂度剪枝 CCP(Cost Complexity Pruning)
• 最小错误剪枝 MEP(Minimum Error Pruning)
• 等等
• 拿 CCP 举例,CART用的就是CCP剪枝,其余的剪枝方法可以网上google一下. CCP剪枝类实际上就是我们之前讲到的最小化结构风险,对决策树,结构风险定义为:
• Cα(T)=C(T)+α|T|Cα(T)=C(T)+α|T|
• 其中: C(T)为模型对训练数据的误差.对分类树,可以采用熵,基尼指数等等.对回归树,可以采用平方误差,∣T∣为树的叶子节点个数, α为两者的平衡系数.

四,决策树优缺点:

优点:

  1. 模型特别容易解释,甚至比线性模型有更好的解释性.
  2. 决策过程跟人的思维习惯特别接近.
  3. 能很清楚的图形化显示模型.
  4. 能很方便的处理一些定性的Feature.
    缺点:
  5. 一般来说,准确率不如其他的模型.但有很多解方案,下面会逐一介绍.
  6. 不支持在线学习,有新样本来的时候,需要重建决策树.
  7. 很容易产生过拟合.
    8 Bagging
    在这里插入图片描述

9 Random Forest
在这里插入图片描述
Random Forest Vs Bagging:

  1. Rand forest是选与输入样本的数目相同多的次数(可能一个样本会被选取多次,同时也会造成一些样本不会被选取到),而bagging一般选取比输入样本的数目少的样本
  2. Bagging是用全部特征来得到分类器,而rand forest是需要从全部特征中选取其中的一部分来训练得到分类器。
  3. 一般Rand forest效果比bagging效果好。

五, Bagging和boosting的区别

参考回答:
1)Bagging是从训练集中进行子抽样组成每个基模型所需要的子训练集,然后对所有基模型预测的结果进行综合操作产生最终的预测结果。 Boosting中基模型按次序进行训练,而基模型的训练集按照某种策略每次都进行一定的转化,最后以一定的方式将基分类器组合成一个强分类器。
2)Bagging的训练集是在原始集中有放回的选取,而Boosting各轮训练集的选择与前面各轮的学习结果有关,每轮的训练集不变,只是训练集中的每个样本在分类器中的权重都会发生变化,此权值会根据上一轮的结果进行调整。
3)Bagging的所有预测函数的权重相等, 各个预测函数可以并行生成, 对于象神经网络这样极为耗时的学习方法,Bagging可通过并行训练节省大量时间开销. Boosting的各预测函数只能顺序生成。每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
4)Bagging中整体模型的期望近似于基模型的期望,所以整体模型的偏差相似于基模型的偏差,因此Bagging中的基模型为强模型(强模型拥有低偏差高方差)。 Boosting中的基模型为弱模型,若不是弱模型会导致整体模型的方差很大。Bagging是减少variance,Boosting是减少bias。
5) Bagging和boosting都可以有效地提高分类的准确性,在大多数数据集中,boosting的准确性比bagging高.( Bagging采用均匀取样,而Boosting根据错误率来取样)

补充:方差vs偏差

六,XGBOOST和GDBT的区别

参考回答:
GDBT在函数空间中利用梯度下降法进行优化而XGB在函数空间中使用了牛顿法进行优化。即GDBT在优化中使用了一阶导数信息,而XGB对损失函数进行了二阶泰勒展开,用到了一阶和二阶倒数信息。
XGB在损失函数中加入了正则项(树叶子节点个数,每个叶子节点上输出score的L2模平方和。
对于缺失的样本,XGB可以自动学习出它的分裂方向。
GDBT的节点分裂方式使用的是gini系数,XGB通过优化推导出分裂前后的增益来选择分裂节点。
XGB在处理每个特征列时可以做到并行。
xgboost的特征重要性计算
参考回答:
Xgboost根据结构分数的增益情况计算出来选择哪个特征作为分割点,而某个特征的重要性就是它在所有树中出现的次数之和。
xgboost的正则项表达式
参考回答:
γ T + 1 2 λ ∣ ∣ w ∣ ∣ 2 \gamma T+\frac{1}{2}\lambda||w||^2 γT+21λw2T为叶子节点的个数,w为叶子节点的分数
xgboost原理,怎么防过拟合
参考回答:
XGBoost是一个树集成模型,它使用的是K(树的总数为K)个树的每棵树对样本的预测值的和作为该样本在XGBoost系统中的预测,定义函数如下:
y i = θ ( x i ) = ∑ k = 1 K f k ( x i ) y_i=\theta(x_i)=\sum_{k=1}^Kf_k(x_i) yi=θ(xi

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值