数据挖掘学习之决策树算法

1、决策树的基本原理

首先拥有训练集,训练集中获得属性集A,在根节点,训练集根据特征的不同取值,将训练集根据特征取值分为若干子数据集,对接下来的若干个子数据根据剩下来的属性特征进一步划分,使得叶子结点得到的数据集尽可能为同一类。这就是决策树的基本思想。类似与平时玩游戏是给出一个信息,然后回答:对或者错的游戏。

2、划分选择

2.1划分选择是指选择最优的划分属性,使得根据这一特征,将训练数据划分为若干个子集,使得每个子集尽可能得属于同一个类别。提高决策树的学习效率。

2.2熵和条件熵

熵是度量随机变量不确定性的度量。熵度量了事物的不确定性,越不确定的事物,它的熵就越大。

若X是离散型随机变量,其概率分布如下:

P(X=xi) = pi, i = 1,2,3,......n

随机变量X的熵的表达式如下:

H(X)=i=1npilogpi


2.1决策树ID3算法

首先,我们需要熟悉信息论中熵的概念。。具体的,

ID3算法就是利用信息增益大小来判断当前节点应该用什么特征来构建决策树。比如说,

我们有15个样本D,输出为0或者1。其中有9个输出为0, 6个输出为1。 样本中有个特征A,取值为A1,A2和A3。在取值为A1的样本的输出中,有3个输出为1, 2个输出为0,取值为A2的样本输出中,2个输出为1,3个输出为0, 在取值为A3的样本中,4个输出为1,1个输出为0.

    样本D的熵为:  H(D)=(915log2915+615log2615)=0.971 H(D)=−(915log2915+615log2615)=0.971

    样本D在特征下的条件熵为:  H(D|A)=515H(D1)+515H(D2)+515H(D3) H(D|A)=515H(D1)+515H(D2)+515H(D3)

                                                       =515(35log235+25log225)515(25log225+35log235)515(45log245+15log215)=0.888 =−515(35log235+25log225)−515(25log225+35log235)−515(45log245+15log215)=0.888    

    对应的信息增益为  I(D,A)=H(D)H(D|A)=0.083 I(D,A)=H(D)−H(D|A)=0.083

2.2ID3的流程

输入的是m个样本,样本输出集合为D,每个样本有n个离散特征,特征集合即为A,输出为决策树T。

    算法的过程为:

    1)初始化信息增益的阈值 ϵ ϵ

    2)判断样本是否为同一类输出 Di Di,如果是则返回单节点树T。标记类别为 Di Di

    3) 判断特征是否为空,如果是则返回单节点树T,标记类别为样本中输出类别D实例数最多的类别。

    4)计算A中的各个特征(一共n个)对输出D的信息增益,选择信息增益最大的特征 Ag Ag

    5) 如果 Ag Ag的信息增益小于阈值 ϵ ϵ,则返回单节点树T,标记类别为样本中输出类别D实例数最多的类别。

    6)否则,按特征 Ag Ag的不同取值 Agi Agi将对应的样本输出D分成不同的类别 Di Di。每个类别产生一个子节点。对应特征值为 Agi Agi。返回增加了节点的数T。

    7)对于所有的子节点,令 D=Di,A=A{Ag} D=Di,A=A−{Ag}递归调用2-6步,得到子树 Ti Ti并返回。

2.4ID3算法的不足之处
   1)没有考虑连续的特征,连续的特征没有考虑
   2)当特征的取值比较多的时候,信息增益明显增大
   3)没有考虑缺失值的情况
   4)对于过拟合的情况没有考虑

4、决策树C4.5的算法的改进

针对ID3算法中存在的不足,算法的创造者对此进行了改进,得到了C4.5算法

4.1连续的特征离散化

比如m个样本的连续特征A有m个,从小到大排列为 a1,a2,...,am a1,a2,...,am,则C4.5取相邻两样本值的平均数,一共取得m-1个划分点,其中第i个划分点 Ti Ti表示为: Ti=ai+ai+12 Ti=ai+ai+12。对于这m-1个点,分别计算以该点作为二元分类点时的信息增益。选择信息增益最大的点作为该连续特征的二元离散分类点。比如取到的增益最大的点为 at at,则小于 at at的值为类别1,大于 at at的值为类别2,这样我们就做到了连续特征的离散化。要注意的是,与离散属性不同的是,如果当前节点为连续属性,则该属性后面还可以参与子节点的产生选择过程。

4.2信息增益比的引进

信息增益比是信息增益和特征熵的比值。表达式如下:

IR(D,A)=I(A,D)HA(D) IR(D,A)=I(A,D)HA(D)

    其中D为样本特征输出的集合,A为样本特征,对于特征熵 HA(D) HA(D), 表达式如下:

HA(D)=i=1n|Di||D|log2|Di||D| HA(D)=−∑i=1n|Di||D|log2|Di||D|

    其中n为特征A的类别数,  Di Di为特征A的第i个取值对应的样本个数。D为样本个数。

    特征数越多的特征对应的特征熵越大,它作为分母,可以校正信息增益容易偏向于取值较多的特征的问题。

4.3对于缺失值处理的问题

主要需要解决的是两个问题,一是在样本某些特征缺失的情况下选择划分的属性,二是选定了划分属性,对于在该属性上缺失特征的样本的处理。

   对于第一个子问题,对于某一个有缺失特征值的特征A。C4.5的思路是将数据分成两部分,对每个样本设置一个权重(初始可以都为1),然后划分数据,一部分是有特征值A的数据D1,另一部分是没有特征A的数据D2. 然后对于没有缺失特征A的数据集D1来和对应的A特征的各个特征值一起计算加权重后的信息增益比,最后乘上一个系数,这个系数是无特征A缺失的样本加权后所占加权总样本的比例。

   对于第二个子问题,可以将缺失特征的样本同时划分入所有的子节点,不过将该样本的权重按各个子节点样本的数量比例来分配。比如缺失特征A的样本a之前权重为1,特征A有3个特征值A1,A2,A3。 3个特征值对应的无缺失A特征的样本个数为2,3,4.则a同时划分入A1,A2,A3。对应权重调节为2/9,3/9, 4/9。

4.4对于过拟合问题,引入正则化系数来进行初步的剪枝

4.5决策树C4.5算法的不足与思考

1)过拟合方法可以优化,主要是预剪枝和后剪枝

2)C4.5算法生成的树是多叉树,在计算机中二叉树更加高效

3)C4.5只能用于分类,回归呢?

4)C4.5运算强度大,如何减少运算的强调。

于是,CART算法应运而生了。下节将讲解CART决策树算法。











  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值