赞
踩
决策树(decision tree)是一种基本的分类与回归方法。ID3是其中一种经典的决策树算法。它通过计算特征的信息增益熵来选择最佳的特征来进行划分。
通过增益熵推导ID3算法的手工过程:
计算原始数据集的熵(Entropy)作为初始熵值。 熵的计算公式为:H(D)=-Σ(p(xi) * log2(p(xi))),其中p(xi)表示数据集中分类为xi的样本的概率。
计算每个特征的信息增益熵(Gain)。 信息增益熵表示给定特征后,数据集的熵减少的程度,可以通过计算原始熵与特征划分后的加权熵之差来表示。
选择信息增益熵最大的特征作为划分特征。 选择信息增益熵最大的特征就是选择使得数据集熵减少最多的特征。这是因为信息增益熵最大的特征能够提供最多的关于目标变量的信息。
根据选择的特征进行数据集划分。 将数据集根据选定的特征的不同取值进行划分,得到新的子集。
对于每个子集,重复步骤1-4,直到划分结束。 递归地对每个子集应用上述过程,直到满足停止条件,例如所有样本都属于同一类别,或者没有更多的特征可供划分。
如下图所示的流程图就是一个决策树,长方形代表判断模块(decision block),椭圆形成代表终止模块(terminating block),表示已经得出结论,可以终止运行。从判断模块引出的左右箭头称作为分支(branch),它可以达到另一个判断模块或者终止模块。我们还可以这样理解,分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点(node)和有向边(directed edge)组成。结点有两种类型:内部结点(internal node)和叶结点(leaf node)。内部结点表示一个特征或属性,叶结点表示一个类。如下图所示的决策树,长方形和椭圆形都是结点。长方形的结点属于内部结点,椭圆形的结点属于叶结点,从结点引出的左右箭头就是有向边。而最上面的结点就是决策树的根结点(root node)。这样,结点说法就与模块说法对应上了。
我们可以把决策树看成一个if-then规则的集合,将决策树转换成if-then规则的过程是这样的:由决策树的根结点(root node)到叶结点(leaf node)的每一条路径构建一条规则;路径上内部结点的特征对应着规则的条件,而叶结点的类对应着规则的结论。决策树的路径或其对应的if-then规则集合具有一个重要的性质:互斥并且完备。这就是说,每一个实例都被一条路径或一条规则所覆盖,而且只被一条路径或一条规则所覆盖。这里所覆盖是指实例的特征与路径上的特征一致或实例满足规则的条件。
使用决策树做预测需要以下过程:
决策树的构建可以概括为三个步骤:特征选择、决策树的生成和修剪。
特征选择在于选取对训练数据具有分类能力的特征。这样可以提高决策树学习的效率,本文使用信息增益作为选择特征的标准。
特征选择就是决定用哪个特征来划分特征空间。比如,我们通过上述数据表得到两个可能的决策树,分别由两个不同特征的根结点构成。
在划分数据集之后信息发生的变化称为信息增益,知道如何计算信息增益,我们就可以计算每个特征值划分数据集获得的信息增益,获得信息增益最高的特征就是最好的选择。
熵定义为信息的期望值。在信息论与概率统计中,熵是表示随机变量不确定性的度量。如果待分类的事物可能划分在多个分类之中,则符号xi的信息定义为(其中p(xi)是选择该分类的概率。):
通过上式,我们可以得到所有类别的信息。为了计算熵,我们需要计算所有类别所有可能值包含的信息期望值(数学期望),通过下面的公式得到:
与
期中n是分类的数目。熵越大,随机变量的不确定性就越大。根据此公式计算经验熵H(D),以下是一组实例,贷款申请样本数据表。分析贷款申请样本数据表中的数据。
根据表中的数据统计可知,在15个数据中,9个数据的结果为放贷,6个数据的结果为不放贷。所以数据集D的经验熵H(D)为:
(2)信息增益
在了解信息增益之前需要了解条件熵的概念。
条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性,随机变量X给定的条件下随机变量Y的条件熵(conditional entropy)H(Y|X),定义为X给定条件下Y的条件概率分布的熵对X的数学期望:
同理,当条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的条件熵称为条件经验熵。
明确了条件熵和经验条件熵的概念。接下来,让我们说说信息增益。前面也提到了,信息增益是相对于特征而言的。
所以,特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即:
一般地,熵H(D)与条件熵H(D|A)之差称为互信息(mutual information)。
设特征A有n个不同的取值{a1,a2,···,an},根据特征A的取值将D划分为n个子集{D1,D2,···,Dn},|Di|为Di的样本个数。记子集Di中属于Ck的样本的集合为Dik,即Dik = Di ∩ Ck,|Dik|为Dik的样本个数。于是经验条件熵的公式可以些为:
举例: 以贷款申请样本数据表为例进行说明。看下年龄这一列的数据,也就是特征A1,一共有三个类别,分别是:青年、中年和老年。我们只看年龄是青年的数据,年龄是青年的数据一共有5个,所以年龄是青年的数据在训练数据集出现的概率是十五分之五,也就是三分之一。同理,年龄是中年和老年的数据在训练数据集出现的概率也都是三分之一。现在我们只看年龄是青年的数据的最终得到贷款的概率为五分之二,因为在五个数据中,只有两个数据显示拿到了最终的贷款,同理,年龄是中年和老年的数据最终得到贷款的概率分别为五分之三、五分之四。所以计算年龄的信息增益,过程如下:
计算器上按出lgx/lg2即为log2 x
通过比较计算出的信息增益大小,由于特征A3(房子有无)的信息增益值最大,所以选择A3作为最优特征。
通过以上结果将有无房子作为根节点,进行迭代,一层层判断最大的信息增益的条件并作为新的子节点,直至不能在进行迭代。
最终生成的决策树如下图
由于采用的ID3算法,无剪枝策略,容易过拟合。
有修剪策略的决策树算法有:C4.5、CART(Classification and Regression Tree)。
总结:
本篇文章讲解了ID3算法中如何计算数据集的经验熵和如何选择最优特征作为分类特征。需要注意的是,决策树在划分过程中可能会过拟合训练数据,因此为了避免过拟合问题,可以对生成的决策树进行剪枝操作,如预剪枝或后剪枝,以提高决策树的泛化能力。
参考文章
https://blog.csdn.net/qq_57160761/article/details/131505731
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。