决策树decision tree

本文是《统计学习方法》李航著学习笔记。

决策树是一种基本的分类与回归方法,这里主要讨论用于分类问题的决策树。

决策树:由结点和有向边组成,“内部节点”表示“特征”,“叶结点”表示“类”。

决策树学习,也就是从训练数据集中归纳出一组分类规则,包含三步:特征选择、树的生成、树的剪枝,下面会分别对这三部分详细论证。

决策树分类,也就是利用决策树对测试实例点进行分类判断,流程如下:从深度为0的根节点开始,对测试实例点的某一特征进行测试,根据测试结果将该实例点分配到深度为1的子节点;下一步,对该实例点的另一个特征进行测试并分配,直至达到叶结点,将测试实例点分到叶结点的类中。注意,上述测试分类过程中,每一次的测试特征(即实例点特征向量的某个维度的特征)是决策树学习过程确定的,所以在对测试点进行分类时,只需要按顺序找到树结点测试特征对应的维度进行比对就可以了。

决策树 V.S. if-then V.S. 条件概率分布

把决策树“从根节点到叶结点的每一条路径”看成一条“if-then规则”:

a.路径上内部节点的特征对应着规则的判断条件;

b.路径的叶结点类对应着规则的结论.(互斥且完备)

把决策树看成“给定特征条件下,类的条件概率分布”:

决策树“从根节点到叶结点的每一条路径”相当于“特征空间的一个单元”,各个单元(叶结点)的形成是基于“该路径自顶向下的节点对应的特征判断条件”,也就是“各个单元内类的条件概率分布”中的“条件”是指“该路径自顶向下的节点对应的特征判断条件”。最后,决策树所表示的条件概率分布,就是各个单元的条件概率分布的并集。


决策树学习详解:


根据给定的训练数据集构建一个决策树模型,利用该模型对测试实例进行正确的分类。

通常,希望“模型对训练数据的拟合较好,又具有较好的泛化能力”,在决策树模型中,用“最小化损失函数”表示这一目标。

在构建决策树时,需要在每一步选择最优特征,根据该特征对训练数据集进行分割,使得对各个子数据集有一个最好的分类——如果子数据集能被基本正确分类,则构建叶结点,将子数据集中的实例点归结到叶结点中;如果子数据集不能被基本正确分类,则对该子数据集选择新的最优特征,继续分割构建子节点。直到所有训练数据子集被基本正确分类,或者没有合适的特征为止。

为了防止过拟合,需要对生成的树自下而上剪枝,去掉过分细分的叶结点,使其父节点或者更高的结点变成新的叶结点。


特征选择:决定用哪个特征来划分输入空间(特征空间),准则是“信息增益”或“信息增益比”。






决策树生成:

ID3算法——从根结点开始,对节点计算所有可选特征信息增益,选择信息增益最大的特征作为节点的特征,由该特征的不同取值建立子节点;再对子节点递归得调用以上步骤,构建决策树;直至没有特征可选或所有特征的信息增益都很小为止.

C4.5算法——从根结点开始,对节点计算所有可选特征信息增益比,选择信息增益比最大的特征作为节点的特征,由该特征的不同取值建立子节点;再对子节点递归得调用以上步骤,构建决策树;直至没有特征可选或所有特征的信息增益比都很小为止.


决策树剪枝:对已生成的树进行简化,极小化决策树整体的损失函数<=>正则化的极大似然估计!!!




特征选择、决策树生成及剪枝全过程算法实例——CART算法:

CART算法是二叉树,在树的生成过程,二分每个特征。

在训练数据集构成的输入空间,选择最优切分特征向量,对该特征求最优的二值切分点。

CART生成:选择“最优特征”,确定该特征的“最优二值切分点”

                    回归树(平方误差最小化准则);

                    分类树(基尼指数最小化准则).

CART剪枝:递归地形成嵌套子树序列;

                    在验证集上对子树序列测试,选其中损失函数最小的子树,即为最优子树.

———————————————————————————————————————————————



注意,对于回归问题,每次递归可选的特征集合,并不需要在总的特征集合中,除去该路径之前已经选过的特征!因为在某一维度进行切分的区间是连续的,可选的切分点不唯一。


——————————————————————————————————————————————




============================================================

CART剪枝:

递归地形成嵌套子树序列;

在验证集上对子树序列测试,选其中损失函数最小的子树,即为最优子树.





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值