决策树最最最最最最常被问到的6个基础问题
决策树
原理及构建过程:
决策树是基于树的结构进行决策的,学习过程包括特征选择,决策树的生成和剪枝过程。
决策树的学习过程通常是递归地选择最优特征,并用最优特征对数据集进行分割。
开始时,构建根节点,选择最优特征,该特征有几种值就划分为多少子集,每个子集递归调用此方法,返回结点。返回的结点就是上一层的子节点,直到所有特征都已经用完,或者数据集只有一维特征为止。
6 个相关问题
1. ID3、C4.5、CART 三类决策树的原理和异同点
ID3 选择最佳分割点是基于信息增益的,信息增益越大,表示用这个属性进行节点划分所获得的“纯度提升”越大。
同时 ID3 的缺点也很明显,某一个子集中特征的数目越多,相应的这个子集的信息增益就越大,即使这个子集每个特征只有一个样本数据。
这样的后果就是构造出来的树泛化能力较弱,模型评估效果不佳。
C4.5 对 ID3 进行了改进,C4.5 采用信息增益率来选择属性,也就是针对子集相应的增加一个权重系数,这样可以避免在选择子集的时候选择特征多而每个特征的样本数量少的现象,但是信息增益率又会使得模型偏向于选择特征少的现象。
所以,C4.5 算法则先从子集中选择信息增益高于平均水平的特征,进一步从中选择增益率最高的特征。
选择信息增益高于平均水平的特征是因为信息增益高于平均水平会过滤掉取值数目少的属性(即信息增益率高的属性)
更多的,C4.5 也克服了 ID3 不能处理连续型变量和缺失值两个缺点。
C4.5 算法构造的决策树只能进行分类任务,而CART树既可以做分类,也可以做回归。
CART树的本质上是对特征空间进行二元划分,所以CART算法生成的树是一棵二叉树,且可以对类别型变量和数值型变量进行分裂。
对分类别变量进行分类时,分为等于该属性和不等于该属性;在对连续型变量进行划分时,分为大于和小于。所以 CART 树做分类的时候用 GINI 系数 作为划分标准,在做回归的时候用的是 均方误差。
2. 分类树和回归树的区别是什么?
分类树以 ID3 为例,在对一个特征进行划分时,首先是穷举这个特征的每一个阈值,找到使得 特征<=阈值 和 特征>阈值 的两个分支的熵的最大值,按照该标准分支得到两个新的节点。用同样的方法继续分支,直到得到种类唯一的叶子节点,或者达到预设的终止条件为止。
回归树的流程类似于分类树,不同的是回归树采用的是均方误差作为划分标准。回归树会尽可能的寻找最小化均方误差,即预测值和实际值的误差最小,且越小则越有可能作为新的节点。
3. 决策树对于缺失值的处理?
忽略缺失样本 使用相应的填充方法对缺失值进行填充 计算信息增益率时根据缺失率的大小对信息增益率进行打折。例如计算某个属性的信息增益率,若属性的缺失率为 0.8,则将信息增益率乘以 0.8 作为最终的信息增益率
属性已经被选择,在决定分割点的时候,有些样本在这个样本上有缺失时的处理
忽略缺失样本 使用相应的填充方法对缺失值进行填充 将缺失值分配到每个子集中,即每个子集上都有缺失的样本 将缺失样本归为一个分支
决策树模型构建好后,测试集上的某些属性是缺失时的处理
如果存在单独的缺失值分支,则依据此分支 使用相应的填充方法对缺失值进行填充(常用众数进行填充) 正常进行分类,直到出现缺失数据的节点停止,选择该节点的众数的叶子节点(即发生概率最高的类)作为最终分类。
4. 决策树模型为什么不需要进行数据归一化?
决策树是一种概率模型,它不关心变量的值,只关心变量的分布和变量之间的条件概率。
所以对数值进行归一化,并不会影响分裂节点的位置。
5. 决策树过拟合应该如何优化?
决策树模型过拟合可以通过预剪枝和后剪枝进行优化
预剪枝:通过提前停止树的构造而对树剪枝,是目前解决过拟合的主要方法。常用的剪枝条件包括限制树的深度、限制叶节点最小样本数、限制叶节点的最小样本权重、限制叶节点的信息增益值的阈值等。
后剪枝:首先构造完整的决策树,并允许构造的树过度拟合数据。然后通过自底向上的方式对非叶节点继续宁考察,若将该节点对应的子树替换为叶节点能带来决策树泛化性能提升,则将该子树替换为叶节点
6. 决策树的优缺点
优点:
易于理解,决策树的if then结构可以很好解释 相对于逻辑回归对数据的预处理,决策树不需要进行特征归一化和缺失值处理 决策树模型的效果较好,且可进一步使用集成树模型进行建模评估
缺点:
容易生成较复杂的树结构,造成过拟合 不适合处理高维度数据,当特征的数量过大时,决策树模型将难以适用(可使用集成树模型进行优化),而且往往很难跑出结果。 模型的泛化能力比较差,对于没有出现过的值不知道如何处理。(可以预先进行分箱操作)
决策树确实是树模型里面最最最最最最简单的一个了,所以一定不能在这个上面被问到了
推荐阅读
(点击标题可跳转阅读)
老铁,三连支持一下,好吗?↓↓