1、什么是决策树?
首先决策树是一种树结构,并且满足if-then规则,此外它是定义在特征空间与类空间上的条件概率分布,决策树实际上是将特征空间划分成了互不相交的单元,每个从根到叶的路径对应着一个单元。决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。实际中,哪个类别有较高的条件概率,就把该单元中的实例强行划分为该类别。
2、和其他模型比,它的优点?
- 模型具有可解释性,容易向业务部门人员描述。
- 分类速度快
- 可以同时处理类别数据和数值数据
3、如何学习一棵决策树?
决策树的学习本质上就是从训练数据集中归纳出一组分类规则,使它与训练数据矛盾较小的同时具有较强的泛化能力。从另一个角度看,学习也是基于训练数据集估计条件概率模型,
决策树的损失函数通常是正则化的极大似然函数,学习的策略是以损失函数为目标函数的最小化
由于这个最小化问题是一个NP完全问题,现实中,我们通常采用启发式算法(这里,面试官可能会问什么是启发式算法,要有准备,SMO算法就是启发式算法)来近似求解这一最优化问题,得到的决策树是次最优的
该启发式算法可分为三步:
- 特征选择
- 模型生成
- 决策树的剪枝
4、递归的终止条件是什么呢?
通常有两个终止条件,一是所有训练数据子集被基本正确分类。二是没有合适的特征可选,即可用特征为0,或者可用特征的信息增益或信息增益比都很小了。
5、什么是决策树剪枝,怎么剪枝?
由于根据训练数据生成的决策树往往过于复杂,导致泛华能力比较弱,所以,实际的决策树学习中,会将已生成的决策树进行简化,以提高其泛华能力,这一过程叫做剪枝。具体说就是在已生成的决策树上裁掉一些子树或叶节点,并将其根节点或父节点作为新的叶节点。具体剪枝时,有一般的剪枝算法和CART剪枝算法两种。
6、一般剪枝算法
不管是一般剪枝算法还是CART剪枝算法,都基于同一个思想,即减小决策树模型的整体损失函数,前面提到过,这个整体损失函数是正则化的极大似然函数,其形式如下:
C
α
(
T
)
=
C
(
T
)
+
α
∣
T
∣
C_{\alpha}(T) = C(T)+\alpha|T|
Cα(T)=C(T)+α∣T∣
C(T)表示决策树T对训练数据集的预测误差,|T|表示决策树的叶节点个数,即模型复杂度。α是权衡因子。C(T)通常有两种衡量方法,一种用熵,一种用基尼指数(这里可先不展开,面试官如果问就再说)
7、CART剪枝算法
相比一般剪枝算法,CART剪枝算法的优势在于,不用提前确定α值,而是在剪枝的同时找到最优的α值。