决策树小结

这一篇用于总结之前对决策树的学习的日常。首先,决策树是一种非参数学习方法,可以解决分类问题(也可以延申解决回归问题),具有较好的可解释性。
图片

  • CART树:根据某个维度d和某个阈值v进行二分的树。以下以CART树的实现为例。
  • 需要解决的问题是,每个节点在哪个维度(特征)进行划分,这个维度在哪个值上做划分
  • 非参数学习具有过拟合倾向,采用剪枝来降低复杂度解决过拟合。而剪枝也分为预剪枝和后剪枝,各有好坏。一般来说,对于一个一般性问题,决策分支过多是不好的。
  • 可以采用一些参数限制来解决过拟合,比如限制决策树的最大深度max_depth,限制一个分支的样本个数min_samples_split
  • 具体的一些方法可以参考这个网址,也可以去看scikit-learn的官网
  • 计算损失的时候可以采用信息熵或者Gini系数,熵的计算慢一些,在sklearn的封装中,比如dt_clf=DecisionTreeClassifier(max_depth=2.criterion=”entropy”)通过criterion选择哪种实现。
  • Entropy在信息论中是随机变量不确定度的表量,熵越大则不确定度越高。而我们之所以想要对训练样本进行划分,就是想要使得信息熵降低。数据集D的纯度可以用基尼值Gini(D)=1-Sigma(p_{k}^2)进行度量,它反映了从D中随机抽取两个样本类别不一致的概率,所以它越小,一致的概率越高,纯度越高。而属性a的基尼系数Gini_index(D,a)在CART中用于选择基尼指数最小的属性来作为最优划分属性
    图片