决策树算法概述

树模型

  • 决策树:从根节点开始,一步步走到叶子节点(决策)
  • 所有的数据最终都会落到叶子节点,既可以做分类也可以做回归


    image.png

    决策树对过滤策略的先后顺序有要求,第一步过滤掉绝大部分数据,效果比较强的,能进行大致的判断。接下来的步骤也能进行划分。

  • 根节点:第一个选择点
  • 非叶子节点与分子:中间过程
  • 叶子节点:最终的决策结果

衡量标准:熵

  • 熵:熵表示随机变量不确定性的度量(说白了就是物体内部的紊乱程度,比如杂货市场里什么都有,那肯定混乱呀;专卖店里只卖一个牌子,那就稳定多了)
  • 公式:H(X) = - i=1,2,3,4,5....n
  • 例子:A=[1,1,1,1,1,1,1,1,2,2] B=[1,2,3,4,5,6,7,8,9,1]
    显然A集合的熵值要低,因为A里只有2个值,比较稳定。B中类别太多,熵值就会大很多
    思考:在分类任务中,我们希望通过节点分支后数据类别的熵值大还是小呐?
    image.png

信息增益: 表示特征X使得类Y的不确定性减少的程度。(分类后的专一性,希望分类后的结果是同类在一起)

决策树

  • ID3:信息增益(问题:不适合解决非常稀松的特征种类,特征非常多。比如没法很好的处理ID类别的特征的数据。)
  • C4.5:信息增益率(解决ID3问题,考虑自身熵。比如自身的增益很大,原始数据熵=0.9,然后0.9/自身熵值,这个增益率就很小。解决了ID3的问题)
  • CART:使用GINI系数来当做衡量标准
  • GINI系数:Gini(p)=
    (和熵的衡量标准类似,计算方式不相同。概率越小,越接近于1,效果越好)

连续值怎么办?

选取(连续值的)哪个分界点?

  1. 排序
  2. 进行”二分“多次尝试,每次都计算熵值。(实际上就是”离散化“的过程,遇到连续值会自动做这个”离散化“的动作)。最终找到在哪个位置切分,使得熵值最小,信息增益最大(率)最大。

决策树剪枝策略

  • 为什么要剪枝:决策树过拟合风险很大,理论上可以完全分得开数据。(想象一下,如果树足够大,每个叶子节点就只有一个数据了,就完全分开了)
  • 剪枝策略:预剪枝、后剪枝
  1. 预剪枝:边建立决策树边进行剪枝操作(更实用)
  2. 后剪枝:当建立完决策树后,来进行剪枝操作

预剪枝

限制深度,叶子节点个数,叶子节点样本数,信息增益量等。

后剪枝

通过一定的衡量标准
代表最后的损失 ; C(T)代表当前节点本身的gini系数或熵值。自己设置的平衡项。叶子节点的数目
即叶子节点越多,损失越多。越大,越容易过拟合。

如何做的分类

叶子节点包含特征的众数为确定的分类类别

如何做回归

叶子节点的样本特征值的方差。既在一个叶子节点的数据特征的差异程度。

你可能感兴趣的:(决策树算法概述)