CART和决策树相关知识点

本文只是记录一些重要点,主要参考自该优秀blog,需要详细介绍的可参考之

  1. CART即分类与回归树,可做分类与回归;ID3/C4.5只能做分类;
  2. CART分类树:强制二分类,分类效果判别采用gini系数(又叫不纯度,越小越好),如下
    G i n i ( p ) = k = 1 K p k ( 1 p k ) = 1 k = 1 K p k 2        ( 2.1 ) Gini(p)=\displaystyle\sum_{k=1}^K p_k(1-p_k)=1-\displaystyle\sum_{k=1}^Kp_k^2 \space\space\space\space\space\space(2.1)
    对于样本D,如果根据特征A的某个值a,把D分成D1和D2两部分,则在特征A的条件下,D的基尼系数表达式为:
    G i n i ( D , A ) = D 1 D G i n i ( D 1 ) + D 2 D G i n i ( D 2 ) s p a c e       ( 2.2 ) Gini(D,A)=\dfrac{|D_1|}{|D|}Gini(D_1)+\dfrac{|D_2|}{|D|}Gini(D_2)space\space\space\space\space\space(2.2)
    采用Gini的好处:避免了信息熵的计算量,同时对分布刻画效果接近信息熵,如下图:在这里插入图片描述
  3. CART分类树:对于连续特征,将每个连续特征的值排序,取相邻两样本值的平均数进行分割;对于离散特征,如A特征有3个特征值 A 1 / A 2 / A 3 A_1 /A_2/A_3 ,则计算Gini时要分成 A 1 v s ( A 2 , A 3 ) A_1vs(A_2,A_3) and A 2 v s ( A 1 , A 3 ) A_2vs(A_1,A_3) and A 3 v s ( A 1 , A 2 ) A_3vs(A_1,A_2) ;需要注意的是:CART的离散特征可能再后续节点选择上重复出现,而ID3/C4.5只会利用一次离散特征,因为它们是多分类;
  4. CART分类树:建立流程略,预测时,预测样本落在的叶子节点里 样本数最多的类别 即为结果;
  5. CART回归树:回归树与分类树大部分相同,两个重要的区别是:
    5.1 分割度量方法: 回归树采用均方差计算,即对于任意划分特征A,对应的任意划分点s两边划分成的数据集D1和D2,求出使D1和D2各自集合的均方差最小,同时D1和D2的均方差之和最小所对应的特征和特征值划分点。表达式为:
    m i n A,s [ m i n c1 x i D 1 ( A , s ) ( y i c 1 ) 2 + m i n c2 x j D 2 ( A , s ) ( y j c 2 ) 2 ]        ( 5.1 ) \underbrace{min}_{\text{A,s}}[\underbrace{min}_{\text{c1}}\displaystyle\sum_{x_i \in D_1(A,s)}(y_i-c_1)^2+\underbrace{min}_{\text{c2}}\displaystyle\sum_{x_j \in D_2(A,s)}(y_j-c_2)^2] \space\space\space\space\space\space(5.1)
    对平方误差求min,可得𝑐1为D1数据集的样本输出均值,𝑐2为D2数据集的样本输出均值,所以上式内部是在计算分割后两个子集各自的均方误差
    5.2 预测方式:预测样本落在某个子节点,则预测结果为该子节点的均值(也有取中位数的);
  6. CART树算法的剪枝:待补充
  7. 对比(引用自上述blog)在这里插入图片描述
  8. pinard认为CART或者单一决策树有两个问题:
    8.1 单一特征分割不如一组特征共同决定分割,因此需要有多变量决策树(multi-variate decision tree);
    8.2 单一决策树受样本扰动较大,即样本稍微变动可能导致决策树结构剧烈变化,可通过集成学习如森林算法进行改善;
  9. 决策树总结(来自上述blog):
    • 优点:
      • 直观,容易解释
      • 可处理离散、连续特征
      • 对异常点的容错能力好,健壮性高
      • 基本不需要预处理,不需要提前归一化
      • 可剪枝提高泛化性
      • 使用决策树预测的代价是𝑂(𝑙𝑜𝑔2𝑚), m为样本数
    • 缺点:
      • 容易过拟合,可以通过设置节点最少样本数量和限制决策树深度来改进
      • 单一决策树容易受样本扰动影响,可通过集成学习算法改进
      • 寻找最优的决策树是一个NP难的问题,我们一般是通过启发式方法,容易陷入局部最优。可以通过集成学习之类的方法来改善。
      • 有些比较复杂的关系,决策树很难学习,比如异或。这个就没有办法了,一般这种关系可以换神经网络分类方法来解决
      • 如果某些特征的样本比例过大,生成决策树容易偏向于这些特征。这个可以通过调节样本权重来改善