决策树(decision tree,待完善)

相关概念

  • 决策树概念:决策数是一种树形结构,其中每一个内部节点表示在一个特征(属性)上的决策条件,每个分支表示一个决策输出,每个叶结点代表一种分类的类别。
  • 决策树基本思想:以信息熵为度量构造一颗熵值下降最快的树,树不断构建的过程也就是熵不断下降的过程。而其中内部结点的具体特征(属性)选择取决于哪个特征在当前结点的熵下降最快。以此类推,到了叶结点处的熵值即为0。
  • 决策树优点:——待定——
  • 决策树缺点:贪心算法无法全局最优;过拟合。

衡量熵值下降程度算法 (ID3、C4.5、CART)

  • ID3(信息增益)
    信息增益表示得知特征(属性)A的信息而使得类X的信息不确定性减少的程度(互信息)。定义如下:
    图1
    计算如下:
    图2

  • 信息增益率(C4.5)
    C4.5的产生是基于ID3的缺点:ID3在选择具体特征作为结点时,会偏向于选择取值较多的特征(如:Windy只有false、ture两个取值,而Outlook有sunny、rain、overcast三个取值)。一个极端情况是:以是否出去完为例,假设新增一列为特征为Partner,它有14个取值(每个取值下,去或者不去),那么经过计算H(D | Partner) = 0,这样信息增益是最大的,必然选取这个特征作为结点。这样会导致决策树很浅,这样构造的效果不好。
    C4.5采用信息增益率作为目标函数:
    图3
    那其实,相对于ID3,C4.5的缺点就是优先选择分裂信息小的特征,也就是选择取值较少的特征。

  • 基尼指数(CART)
    classification and regression tree,即分类回归树算法,它是决策树的一种实现。与上述ID3、C4.5算法不同,CART算法是一种二分递归分割技术,把当前样本集合划分为两个子集合,它生成的每个非叶子结点都只有两个分支(二叉树)。ID3、C4.5的每个结点没有规定是二分支或者三、四分支。而CART则规定是二分支。
    在具体分析CART的建树过程之前,先解释GINI(基尼)指数的概念:
    图4
    CART建树过程:
    1、在决策树的非叶子结点A上按照数据的任何特征(属性)的任何取值进行划分,产生当前结点A的左右两个子节点B、C。决定划分依据是最大化:GINI(A) - (GINI(B) + GINI©);
    2、停止条件:一个结点产生左右子结点后,递归地对左右子结点进行划分,即可产生分类回归树。当结点所包含的数据都属于同一类别的时候可以停止分裂。在实际操作中,还可以通过设定结点最小记录数、子结点记录数占父结点记录数的最小百分比等参数来设置停止条件。
    实际上,CART中对连续值特征(属性)的处理很方便,因为只要通过特征将数据集一分为二即可。假设连续值特征在数据集中的取值有m个,那么选择分裂点的时候可以尝试的分裂点有m-1个。

相关问题
1、【过拟合】在决策树学习中,为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多,这时就可能因训练样本学的太好了,以至于把训练集自身的一些特点当作所有数据都具有的一般性质而导致过拟合。
【解决方法】预剪枝 & 后剪枝 & 随机森林。预剪枝是指在决策树生成过程中,对每个结点在划分前进行估计,若当前结点的划分不能带来决策树泛化性能的提升,则停止划分并将当前结点标记为叶结点。后剪枝则是先从训练集生成一颗完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化能力的提升,则将该子树替换为叶结点。
2、【缺失值处理】——待续——
3、【连续值处理】设置阈值使其离散。

参考

1、https://www.zybuluo.com/frank-shaw/note/103575
2、西瓜书

猜你喜欢

转载自blog.csdn.net/zyd196504/article/details/88252636
今日推荐