决策树
决策树与条件概率分布
决策树在概率论的角度解释就是每次选择一个特征,然后根据该特征的不同取值对特征空间进行划分,如此递归下去把特征空间划分为一个个子区域,对于落在这个子区域上的样本,我们可以用条件概率分布P(Y|X)来表示这些样本的概率分布,最终把条件概率最大的类别作为该子区域中的样本的类别。
ID3 算法
C4.5 算法
ID3算法和C4.5算法
ID3算法用信息增益来作为选择分裂特征的标准,而C4.5算法使用信息增益率作为选择分裂特征的标准,相同条件下信息增益会倾向于选择取值较多的特征(更容易过拟合),详细分析见决策树分裂时的特征选择标准。
决策树中的剪枝
CART算法
CART算法的特点
(1) CART算法不仅可以处理分类问题,还可以处理回归问题。
(2)CART采用了二叉树模型,因此离散特征也可能被重复选用。
(3)对于分类问题CART算法用基尼系数作为选择分裂特征的标准,基尼系数相对于熵模型来说没有复杂的对数运算,计算更为简单。
(4)对于回归问题CART用平方误差最小化准则作为选择分裂特征的标准,并且每个叶子节点输出为该叶子节点所有样本输出的均值。
(5)CART的剪枝算法由两步构成:
1)先是计算出整体树每个内部节点t的剪枝阈值 ,当我们选取的阈值大于等于这个节点t的剪枝阈值是这个节点可以被剪枝。
2)把这些阈值按从小到大的顺序排序,并且按前面的规则进行剪纸,对于每个阈值 ,我们都可以得到一颗子树,这样我们就可以得到一个子树集合,然后我们在独立验证集上用交叉验证的方法就可以选出最优子树。
CART分类树算法
1. 离散特征处理
由于CART算法构建的是二叉树,所以对于离散特征,我们二分离散特征,假设特征A有3个取值{x,y,z},我们把它分成{x,非x},{y,非y}和{z,非z}3种情况,我们需要计算这3种情况的基尼指数。
2. 连续特征处理
对于连续特征我们将其离散化处理,假设样本的连续特征A有m个取值,把这m个值按从小到大排列,用相邻两个值的均值作为划分点将连续特征离散化,然后按离散特征的处理方法处理就行了。
3. 算法步骤
CART回归树算法
CART回归树和CART分类树的建立算法大部分是类似的,但是在以下几个方面存在不同:
1. 选择分裂特征的方法不同
CART分类树采用的是用基尼系数的大小来度量特征的各个划分点的优劣情况。这比较适合分类模型,但是对于回归模型,我们使用了常见的均方差和的度量方式,CART回归树的度量目标是,对于任意划分特征A,选取划分点s把数据集划分成D1和D2,求出使D1和D2各自集合的均方差最小的输出c1和c2(均方误差最小化准则下,c1就是D1该特征的均值,c2就是D2该特征的均值),求出D1和D2的均方差之和最小所对应的特征A和特征值划分点s。表达式为:
2. 决策树建立后做预测的方式不同
CART分类树采用叶子节点里概率最大的类别作为当前节点的预测类别。而回归树输出不是类别,它采用的是用最终叶子的均值或者中位数来预测输出结果。
CART树算法的剪枝
CART剪枝的思想是对树中叶子节点的数目做一个惩罚来限制模型的复杂度,减少模型的过拟合。对于任意的一刻子树T,其损失函数为:
C(Tt)为训练数据的预测误差,分类树是用基尼系数度量,回归树是均方差度量。|Tt|是子树T的叶子节点的数量。
CART采是后剪枝法,即先生成决策树,然后对于每个节点我们都可以计算出它的剪枝阈值,然后把这些剪枝阈值按从小到达排序,对于每个剪枝阈值我们都可以得到一颗剪枝后的子树,这样我们就可以得到一个子树序列,最后我们借助交叉验证法在独立的验证集中选出最优子树。
决策树如何处理缺失值
1. 如果缺失属性的样本很少,可以直接去掉这些样本。
2. 把缺失的属性当作单独的一个值。
3. 在选择分裂属性时忽略特征缺失的样本,最终计算的值乘以实际参与计算的样本数占总的样本数的比例。训练时,发现样本属性缺失将该样本分配到所有子节点中,权重由1变为具有属性a的样本被划分成的子集样本个数的相对比率,计算损失的时候,需要考虑到样本权重。测试时,发现属性缺失,就把他分到样本数最多的特征方向。
决策树优缺点总结
总结:
决策树的优点:可解释性强,树一但建好之后,预测效率非常高
决策树的缺点:泛化能力弱,容易过拟合到类别多的特征上去,样本发生变化之后需要重新建树,不适用于实时性比较强的场景
参考博客
https://www.cnblogs.com/pinard/p/6050306.html
https://www.cnblogs.com/pinard/p/6053344.html
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步