简介:
决策树包括三个部分:内部结点(internal node),叶结点(leaf node)和有向边(directed edge),内部结点表示特征或属性,叶结点表示类,有向边表示划分的条件。决策树学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。构建决策树就是一个递归的选择内部节点,计算划分条件的边,最后到达叶子节点的过程。决策树学习通常包括3个步骤:特征选择、决策树的生成和决策树的修剪。
(递归是指一种通过重复将问题分解为同类的子问题而解决问题的方法 详见程序员必备的基本算法:递归详解 - Jay_huaxiao - 博客园 (cnblogs.com))
问题1:决策树和条件概率分布的关系?
决策树可以表示成给定条件下类的条件概率分布。可以这样理解:每条路径都是一个条件,每个节点的分裂基于某个属性的条件概率。
针对书中提到决策树选取是NP完全问题,可以参考经典「 P问题、NP问题、NPC问题、NP-hard问题详解」_np难问题-CSDN博客
启发式算法可以这样定义:一个基于直观或经验构造的算法, 在可接受的花费(指计算时间和空间)下给出待解决组合优化问题每一个实例的一个可行解, 该可行解与最优解的偏离程度一般不能被预计。 现阶段,启发式算法以仿自然体算法为主,主要有蚁群算法、模拟退火法、神经网络等。启发式方法的特点是通过一些规则或策略来快速得到近似解决方案,而不一定穷举所有可能性。
决策树的构建:首先,构建根结点,所有数据都在根结点。选择一个最优特征将数据集分割成子集,使得各个子集在当前条件下有最好的分类。如果已经能够基本正确分类,那么构建叶结点,将子集分到对应的叶结点中;如果不能被正确分类,就选择新的最优特征,继续分割构建结点。如此递归进行下去,直到所有训练数据子集被基本正确分类,或没有合适特征为止。
决策树的生成对应于模型的局部选择,剪枝对应于模型的全局选择。因为决策树的生成过程每次只考虑当前划分能带来的最大的信息增益,而决策树剪枝是在整个训练数据集上评估决策树性能的基础上进行的。
特征选择
通常特征选择的准则是信息增益(information gain)或信息增益比(information gain ratio)。
首先给出熵(entropy)和条件熵的定义
熵的定义详见一文搞懂交叉熵在机器学习中的使用,透彻理解交叉熵背后的直觉-CSDN博客
条件熵是X给定条件下Y的条件概率分布的熵对X的数学期望
信息增益表示已知特征X的信息而使得类Y的信息的不确定性减少的程度。特征A对训练数据集D的信息增益为集合D的经验熵与特征A给定条件下D的经验条件熵之差。信息增益大的特征具有更强的分类能力。
信息增益比是信息增益与D关于特征A的值的熵之比,使用原因是信息增益存在偏向于选择取值较多的特征的问题(因为如果一个特征取值种类很多,那么他能造成更大的信息差异,所以信息增益倾向于选择这个特征)导致过拟合。
决策树的生成
ID3算法:在决策树的各个结点应用信息增益准则选择特征,递归地构建决策树。
C4.5算法:与ID3算法相似,改进是使用信息增益比选择特征。
问题2:ID3和ID4.5可以处理实数特征吗?
ID3算法和C4.5算法是处理类别特征的方法,我们可以定义对于每一个实数使用这种方式进行分割,或者采用特征分桶的方法。
书中问题5.1的C4.5算法实现
python代码实现方法详见
统计学习方法 第五章习题答案_统计学习方法第五章习题答案-CSDN博客
决策树的修剪(pruning)
考虑熵的同时(模型的确定性)也对模型的复杂度进行了惩罚。
问题3:决策树怎么剪枝?
算法在构造决策树的时候都是尽可能细分,容易过拟合;剪枝包括预剪枝和后剪枝,预剪枝是在决策树的构建过程中加入限制,比如控制叶子节点最少的样本个数,提前停止。后剪枝是在决策树构建完成后,根据正则项的结构风险最小化自下向上进行剪枝操作。
CART算法
CART(classification and regression tree)算法由两步组成:决策树生成和决策树剪枝
CART生成
决策树的生成就是递归地构建二叉决策树的过程。对回归树用平方误差最小化准则,对分类树用基尼指数(Gini index)最小化准则,进行特征选择,生成二叉树。CART回归树是GBDT的基础,因为GBDT每次拟合梯度是连续值。GBDT算法原理以及实例理解_gbdt算法实例 csdn-CSDN博客
问题4:为什么CART使用基尼指数不使用信息熵?
因为信息熵需要计算对数,计算量大;
CART剪枝
当该节点作为根结点的损失函数和作为单节点树的损失函数相同时,作为单结点树的结点更少,因此更可取,所以对此结点进行剪枝。
详见
机器学习--详解CART树剪枝原理和过程_cart剪枝原理-CSDN博客
问题5:决策树最后没有用到的特征一定是无用吗?
不是。一是特征替代性,比如A和B可以替代C。二是每条路径是计算条件概率的条件,这条条件在树中无用,拿出来也可以帮助分析数据。
问题6:决策树的优缺点?
优点:可读性好,便于人工分析;效率高,可反复使用
缺点:对中间值的缺失敏感;容易过拟合
如果对这篇笔记有什么问题,欢迎交流啊!
参考资料:
决策树算法十问及经典面试问题-腾讯云开发者社区-腾讯云 (tencent.com)
李航,著. 统计学习方法[M]. 清华大学出版社