分类决策树——C4.5
一,介绍
前一篇文章我介绍的是分类决策树ID3,学习过ID3的同学肯定知道它的变体——C4.5。现在我们介绍另外一个经典的决策树C4.5。在很多介绍中,C4.5被看作是数据挖掘十大算法之一。C4.5是基于ID3改进的一种算法,相比于ID3算法,改进有如下几点:
1,用信息增益率来选择属性。ID3选择属性用的是子树的信息增益,这里可以用很多方法来定义信息,ID3使用的是熵,信息增益其实就是熵的变化值,而C4.5用的是信息增益率。(后面我会详细介绍信息增益率与信息增益的区别)
2,在C4.5决策树建树过程中有剪枝的行为,因为某些具有很少元素的节点可能会使构造的决策树过拟合,在建树的过程中不考虑这些点,训练结果会更好。(过拟合就是训练出的模型对训练集的数据准确率很高,但是对于测试集或者训练集以外的数据处理能力很差,泛华能力很低)
3,对于非离散数据也能处理
4,很能处理不完整的数据
二,概念与公式
1,信息增益
在ID3算法中,信息增益作为工具用来进行属性选择度量。选择具有最高信息增益的属性作为节点N的分裂属性。被选择的属性使得结果划分中的元组分类所需信息量最小。系统的信息增益计算公式如下:
信息增益又称为熵。
现在假定按照属性A划分D中的元组,且属性A将D划分成x个不同的类。在该划分之后,为了得到准确的分类还需要的信息由下面的式子度量:
2,信息增益率(
Info Gain Ratio
)的概念和计算:由上篇文章ID3的内容可知,ID3选节点特征收根据特征的信息增益来选择。下面来看一下ID3用信息增益选择特征的缺点:假设数据集中某个属性存在大量的不同值,如phonenumber手机号码,在用户信息中,不同用户的手机 号码是不同的,n个用户就有n个手机号码,在划分时将每个值成为一个结点,这样就形成了下面的图:
划分后的信息熵如下:
因为Info(Si) = Info([0,1])只含一个纯节点。因此决策树在选择属性时,将偏向于选择该属性,但是这样会导致过拟合的情况出现。C4.5就是针对此问题的一种改进的算法,C4.5中使用的是信息增益率(info gain ratio)来选择分裂节点。
信息增益率的计算公式如下:
Gain(A)即G(S,A),
E(S)即系统的信息熵,E(S,A) 是以属性A为分裂节点,分裂后的信息熵。
现在针对信息增益率,我选择了一个经典的例子来说明其具体的计算公式:
例如:属性Outlook有三个值,其中Sunny有5个样本,Rainy有5个样本,Overcast有4个样本,则I(Outlook)的计算如下:
属性Outlook的信息增益计算如下:
Gain(Outlook) = Info(S) - Info(Outlook)
Gain(Outlook) = Info(S) - Info(Outlook)=0.246
Gain(Ratio) = I(Outlook)/Gain(Outlook)= 0.246/1.577406282852345 = 0.15595221261270145
根据计算得到的信息增益率进行选择属性集中的属性作为决策树分裂结点,对该结点进行分裂。
三,优点与缺点
1,优点:
1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;
2) 在树构造过程中进行剪枝;
3) 能够完成对连续属性的离散化处理;
4) 能够对不完整数据进行处理。
2,缺点:
在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效