经典的决策树算法

回归与分类

我们在机器学习中一直会遇到两种问题,一种是回归问题,一种是分类问题。我们从字面上理解,很容易知道分类问题其实是将我们现有的数据分成若干类,然后对于新的数据,我们根据所分得类而进行划分;而回归问题是将现有数据拟合成一条函数,根据所拟合的函数来预测新的数据。 这两者的区别就在于输出变量的类型。回归是定量输出,或者说是预测连续变量;分类问题书定量输出,预测离散变量。

如何区分分类与回归,看的不是输入,而是输出。举个例子,预测明天晴或是雨,是分类问题,而预测明天多少度,则是回归问题。

回归树与分类树

在决策树中,也有回归树与分类树的概念。 在二者的区别中,回归树是采用最大均方误差来划分节点,并且每个节点样本的均值作为测试样本的回归预测值;而分类树是采用信息增益或者是信息增益比来划分节点,每个节点样本的类别情况投票决定测试样本的类别。我们可以看到,这两者的区别主要在于划分方式工作模式。回归树采用最大均方误差这种对数据精确处理的方式,输出连续变量,可以更好地给我们的数据进行预测;而分类树使用一个非常宽泛的信息增益这个变量,更好的从整体把握这个数据集的分类

1.特征选择

信息增益

这是信息增益的定义。可能理解起来非常之简单,新加的一个节点与原来系统的互信息。也就是多考虑一个特征值给我们整个决策环节多提供的信息量。但是我们一定要注意信息增益的计算过程,这里我贴上《统计学习方法》中的例子,来给大家参考:

æ°æ®éãç»è®¡å­¦ä¹ æ¹æ³ã

我们对于这个判决树,当然倾向于选择自身不确定性更大的特征,因为自身不确定性越大,一旦被确定下来,引入的信息量就越多。这样的话,对于整个系统判决更加有效。

信息增益比 

信息增益比,有的书也叫信息增益率。 

2.决策树生成

ID3算法 


ID3算法的核心实在决策树上的各个节点上用 信息增益 选择特征。在ID3算法生成树的时候,是先计算所有备选特征的信息增益,然后再选择下一个节点是哪一个特征。

在这个信息增益的定义及公式中,我们一定要注意这个H(D)的算法。我们求解一整个集合的熵,一般是求解 信息增益直接影响了我们选择什么节点来作为下一个特征的操作,并且设置一个阈值e,当信息增益小于这个阈值的时候停止循环。 为了不影响大家理解,我将这个算法完整的写在这:


  1.  输入:训练数据集D,特征集A,阈值e; 输出 : 决策树T

  2.  若D中国所有实例属于同一类Ck,则T为单结点树,并将Ck作为该结点的类标记,返回T;

  3.  若A=空集,则T为单结点树,并将D中的实例数最大的类Ck作为该结点的类标记,返回T;

  4.  否则,计算A中各特征对D的信息增益,选择信息增益最大的特征Ag;

  5.  如果Ag的信息增益小于阈值e,则置T为单结点树,并将D中实例数最大的类Ck作为该结点的类标记,返回T;

  6.  否则,对Ag的每一个可能值ai;依Ag=ai将D分割为若干非空子集Di;将Di中实例数最大的类作为标记,构建子结点,由结点及其子结点构成树T,返回T;

  7.  对第i个子结点,以Di为训练集,以A-{Ag}为特征集,递归调用(1)~(5),得到子树Ti,返回Ti。


为了加深大家的理解,我贴上李航著的《统计学习方法》里面的例子:

数据集《统计学习方法》

 

 

 

ID3生成树计算过程

 

缺点:

ID3算法只有树的生成,并没有对于拟合程度的控制或者是削减分支,所以该算法产生的树容易产生过拟合。

C4.5算法

C4.5算法与ID3算法非常相似,是对其的一种改进。唯一与ID3不同的是 C4.5采用信息增益比 而不是信息增益来选择特征。

贴出C4.5算法:

输入:训练数据集D,特征集A,阈值e; 输出:决策树T

  1. 若D中所有实例属于同一类Ck,则T为单结点树,并将Ck作为该结点的类标记,返回T;
  2. 若A=空集,则T为单结点树,并将D中的实例数最大的类Ck作为该结点的类标记,返回T;
  3. 否则,计算A中各特征对D的信息增益,(具体怎么计算请看我前一条关于决策树基础的博客)选择信息增益最大的特征Ag;
  4. 如果Ag的信息增益小于阈值e,则置T为单结点树,并将D中实例数最大的类Ck作为该结点的类标记,返回T;
  5. 否则,对Ag的每一个可能值ai;依Ag=ai将D分割为若干非空子集Di;将Di中实例数最大的类作为标记,构建子结点,由结点及其子结点构成树T,返回T;
  6. 对第i个子结点,以Di为训练集,以A-{Ag}为特征集,递归调用(1)~(5),得到子树Ti,返回Ti。

我们为什么说C4.5是对ID3的一种改进呢?这个问题我们得从二者区别也就是信息增益与信息增益比说起。 我们再次贴上信息增益与信息增益比的定义:

 

信息增益定义

 

 

 

信息增益比定义

 

 

通过对比我们可以看出,信息增益就是特征与训练集的互信息,或者说原来数据集的不确定性与确定其中一个特征之后的不确定性之差,称做信息增益。也就是确定这个特征所引入的信息量。而信息增益比则是这一个互信息与D的不确定性的比值。

当我们遇到一个取值很多的属性的时候,比如西瓜的品种这个属性,会有好几十种品种,也就是好几十种取值。通过计算我们会发现,这类属性的不确定性要比那些只有一两个取值的属性要大(因为取值很多使得整个数据集的混乱程度很大), 所以计算机如果处理的时候优先选择取值多的属性。

所以C4.5在ID3的基础上,采用了信息增益比这个判决方法,来惩罚取值很多的属性。

3.分类回归树(CART算法)

CART既可以用以分类,也可以用以回归,CART决策树对回归树用平方误差最小化准则,对分类树用基尼系数(Gini)最小化准则,进行特征选择,生成二叉树。

1.回归树的生成

 

图1 回归树生成算法

 

 2.分类树的生成

分类树用基尼指数选择最优特征

基尼指数

基尼指数Gini(D)表示集合D的不确定性,基尼指数越大样本集合不确定性也就越大。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值