码迷,mamicode.com
首页 > 编程语言 > 详细

决策树(三)分类算法小结

时间:2018-09-13 01:14:03      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:sla   原则   lan   变量   size   nbsp   .com   需要   包括   

引言

  本文主要是对分类型决策树的一个总结。在分类问题中,决策树可以被看做是if-then规则的结合,也可以认为是在特定特征空间与类空间上的条件概率分布。决策树学习主要分为三个步骤:特征选择、决策树的生成与剪枝操作。本文简单总结ID3和C4.5算法,之后是决策树的修剪。

ID3算法

  ID3算法和核心是:在决策树各级节点上选择属性时,用信息增益(information gain)作为属性的选择标准,具体做法是:检测所有的属性,选择信息增益最大的属性产生决策树节点,由该属性的不同取值建立分支,再对各分支循环调用该方法建立决策树节点的分支,直到所有子集仅包含同一类别为止。

信息增益

  了解信息增益,首先介绍熵与条件熵的概念。

  熵表示随机变量不确定性的度量。设$X$是一个取有限值的离散随机变量,其概率分布为:

$$p(X=x_i)=p_i$$

则随机变量 $X$ 的熵定义为:

$$H(X)=-\sum_{i=1}^np_ilogp_i  , i=1,2,n$$

由定义可知,熵只依赖于$X$的分布,而与$X$的取值无关。

熵越大,随机变量的不确定性越高,并且:

$$0\leqslant{H(p)}\leqslant{logn}$$

当随机变量只有两个取值时,例如0,1,则$X$的分布为:

 $$p(X=1)=p,p(X=0)=1-p,  0\leqslant{p}\leqslant1$$

熵为:

$$H(p)=-plog_2p-(1-p)log_2(1-p)$$

技术分享图片

当$p=0$或$p=1$时,$H(p)=0$,随机变量完全没有不确定性,当$p=0.5$时,$H(p)=1$,熵取最大值,随机变量的不确定性最大。

 条件熵

   设随即变量$(X,Y)$,其联合概率分布为:

$$P(X=x_i,Y=y_i)=p_{ij},i=1,2,\dots,n;j=1,2,\dots,n$$

条件熵$H(Y|X)$表示在已知随机变量$X$的条件下随机变量$Y$的不确定性,随机变量$X$给定的条件下随机变量$Y$的条件熵$H(Y|X)$,定义为$X$给定的条件下$Y$的条件概率分布的熵对$X$的数学期望:

$$H(Y|X)=\sum_{i=1}^np_iH(Y|X=x_i)$$

这里,$p_i=P(X=x_i)$

信息增益

  特征$A$对训练数据集$D$的信息增益,定义为集合$A$的经验熵$H(D)$与特征$A$给定条件下$D$的经验条件熵$H(D|A)$之差:

$$g(D,A)=H(D)-H(D|A)$$

小结

  ID3算法就是在每次需要分裂时,计算每个属性的增益率,然后选择增益率最大的属性进行分裂.

  其核心是:决策树各级结点上选择属性时,用信息增益(information?gain)作为属性的选择标准,以使得在每一个非叶结点进行测试时,能获得关于被测试记录最大的类别信息。

  其方法是:检测所有的属性,选择信息增益最大的属性产生决策树结点,由该属性的不同取值建立分支,再对各分支的子集递归调用该方法建立决策树结点的分支,直到所有子集仅包含同一类别的数据为止。最后得到一棵决策树。

C4.5算法

  C4.5算法首先定义了“分裂信息”,即信息增益比:

$$g_R(D,A)=\frac{g(D,A)}{H(D)}\qquad$$

  C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:?

  • 1:用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足
  • 2:能够完成对连续属性的离散化处理;?
  • 3:能够对不完整数据进行处理。

决策树剪枝

  决策树构造时,由于训练数据中的噪音或孤立点,许多分枝反映的是训练数据中的异常,使用这样的判定树对类别未知的数据进行分类,分类的准确性不高。因此试图检测和减去这样的分支,检测和减去这些分支的过程被称为树剪枝。树剪枝方法用于处理过分适应数据问题。通常,这种方法使用统计度量,减去最不可靠的分支,这将导致较快的分类,提高树独立于训练数据正确分类的能力。

  树枝修剪包括事先修剪和事后修剪两种方法: 
  (1)事前修剪方法:在决策树生成分支的过程,除了要进行基础规则的判断外,还需要利用统计学的方法对即将分支的节点进行判断,比如$\chi^2$或统计信息增益,如果分支后使得子集的样本统计特性不满足规定的阈值,则停止分支;但是阈值如何选取才合理是比较困难的。 
  (2)事后修剪方法:在决策树充分生长后,修剪掉多余的分支。根据每个分支的分类错误率及每个分支的权重,计算该节点不修剪时预期分类错误率;对于每个非叶节点,计算该节点被修剪后的分类错误率,如果修剪后分类错误率变大,即放弃修剪;否则将该节点强制为叶节点,并标记类别。产生一系列修剪过的决策树候选之后,利用测试数据(未参与建模的数据)对各候选决策树的分类准确性进行评价,保留分类错误率最小的决策树。 
  除了利用分类错误率进行树枝修剪,也可以利用决策树的编码长度进行修剪。所谓最佳决策树是编码长度最短的决策树,这种修剪方法利用最短描述长度(MDL)原则来进行决策树的修剪。

 

决策树(三)分类算法小结

标签:sla   原则   lan   变量   size   nbsp   .com   需要   包括   

原文地址:https://www.cnblogs.com/jin-liang/p/9629084.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!