大厂常考决策树模型面试题6道

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第4天,点击查看活动详情

1、ID3、C4.5、CART树的算法思想

ID3算法的核心是在决策树的每个节点上应用信息增益准则选择特征,递归地构架决策树。

C4.5算法的核心是在生成过程中用信息增益比来选择特征。

  • 经验熵 刻画了对数据集进行分类的不确定性。
  • 经验条件熵 刻画了在特征 A 给定条件下,对数据集分类的不确定性。
  • 信息增益 刻画了由于特征 A 的确定,从而使得对数据集的分类的不确定性减少的程度。

信息增益:数据集 D 的经验熵与关于特征 A 的经验条件熵的差值。

2、ID3、C4.5、CART树分裂依据的公式

ID3算法分类依据:信息增益:经验熵 - 经验条件熵

经验熵 [公式]

经验条件熵 [公式]

信息增益 [公式]

C4.5算法分类依据:信息增益比 [公式]

其中,数据集D关于特征A的经验熵为 [公式]

Cart树算法分类依据:基尼指数

[公式]

[公式] [公式]

3、为什么信息增益比比信息增益好?

因为信息增益会倾向于取值较多的特征,信息增益比本质上是对信息增益乘以一个加权系数,可以在一定程度上对取值较多的特征进行惩罚,避免ID3出现过拟合,提升决策树的泛化能力。

4、ID3、C4.5、CART树的区别

三种树的分裂依据不同。

ID3只能处理离散型变量;C4.5和CART都可以处理连续型变量。

ID3对缺失值比较敏感;C4.5和CART都可以处理缺失值。

ID3和C4.5只能用于分类任务,CART既可以分类,也可以回归。

ID3和C4.5可以在每个节点上产生多叉分支,且每个特征在层级之间不会复用,CART每个节点只会产生两个分支,因此会形成二叉树,且每个特征可以被重复使用。

5、随机森林的大致过程和优缺点

随机森林是一种基于bagging的分类算法,它通过自助法(bootstrap)重采样技术,从原始训练样本集D中有放回地重复随机抽取n个样本生成新的训练样本集合训练决策树,然后按以上步骤生成m棵决策树组成随机森林,新数据的分类结果按分类树投票多少形成的分数而定。

随机森林大致过程如下:

1)从样本集中有放回随机采样选出n个样本;

2)从所有特征中随机选择k个特征,对选出的样本利用这些特征建立决策树(一般是CART,也可是别的或混合);

3)重复以上两步m次,即生成m棵决策树,形成随机森林;

4)对于新数据,经过每棵树决策,最后投票确认分到哪一类。

随机森林是一种基于bagging的分类算法,它通过自助法(bootstrap)重采样技术,从原始训练样本集D中有放回地重复随机抽取n个样本生成新的训练样本集合训练决策树,然后按以上步骤生成m棵决策树组成随机森林,新数据的分类结果按分类树投票多少形成的分数而定。

随机森林大致过程如下:

1)从样本集中有放回随机采样选出n个样本;

2)从所有特征中随机选择k个特征,对选出的样本利用这些特征建立决策树(一般是CART,也可是别的或混合);

3)重复以上两步m次,即生成m棵决策树,形成随机森林;

4)对于新数据,经过每棵树决策,最后投票确认分到哪一类。

优点:

每棵树都选择部分样本及部分特征,一定程度避免过拟合;

训练速度快,适合并行计算;

数据无需进行归一化

缺点:

黑盒模型,不好解释。

6、随机森林和GBDT区别

随机森林采用的bagging思想,而GBDT采用的boosting思想。这两种方法都是Bootstrap思想的应用,Bootstrap是一种有放回的抽样方法思想。虽然都是有放回的抽样,但二者的区别在于:Bagging采用有放回的均匀取样,而Boosting根据错误率来取样(Boosting初始化时对每一个训练样例赋相等的权重1/n,然后用该算法对训练集训练t轮,每次训练后,对训练失败的样例赋以较大的权重),因此Boosting的分类精度要优于Bagging。Bagging的训练集的选择是随机的,各训练集之间相互独立,弱分类器可并行,而Boosting的训练集的选择与前一轮的学习结果有关,是串行的。

组成随机森林的树可以是分类树,也可以是回归树;而GBDT只能由回归树组成。

组成随机森林的树可以并行生成;而GBDT只能是串行生成。对于最终的输出结果而言,随机森林采用多数投票等;而GBDT则是将所有结果累加起来,或者加权累加起来。

随机森林对异常值不敏感;GBDT对异常值非常敏感。

随机森林对训练集一视同仁;GBDT是基于权值的弱分类器的集成。随机森林是通过减少模型方差提高性能;GBDT是通过减少模型偏差提高性能。