您的位置:首页 > 其它

机器学习笔记-决策树生成原理

2014-04-11 11:06 316 查看

1.决策树是什么?

决策树是一种属性结构的辅助决策工具。树枝节点表示决策规则,也有叫属性;树叶节点表示结果,也有叫类别。自上而下由根节点依次延伸,根据属性阈值不同延伸到不同的方向,到达下一个属性节点,并继续延伸,直至最终的叶子节点,也就是分类完成。

决策树学习是一种逼近离散值目标函数的方法,该方法学习到的函数被表示为一个决策树。决策树可被表示为多个if-then的规则。

那么,怎么知道先从哪个属性开始作为根节点,又怎么知道下一个节点应该是哪一个属性?这就要用到一个算法ID3了。



2.ID3是干嘛的?

ID3算法的核心问题是选取在树的每个节点要测试的属性。也就是说,在决策树构造的过程中,“哪一个属性将要被测试?”是由算法ID3决定的。ID3是基本算法,后续有些衍生算法,如C4.5等。

那么ID3是怎么决定哪个属性应该在接下来的节点上呢?或者说,ID3算法中,用什么定量标准来衡量属性价值?

这里定义一个统计属性,称为“信息增益”(information gain),用来衡量给定属性区分训练样本的能力。ID3算法在增长树的每一步使用这个量(信息增益)作为标准,从候选属性中选择属性。怎么来描述“信息增益”这个量?ID3又是怎样利用这个量来选择属性的呢?这要从另一个量——熵,开始说起。

2.1熵的概念

熵是信息论中广泛使用的一个度量标准,用来描述任意样本集的纯度。一般的,如果目标属性具有n个不同的值,那么样本集合S相对n个状态的分类的熵定义为:



其中pi是S中属于类别i的比例。注意,对数的底数为2,原因是熵是以二进制位的个数来度量编码长度的。同时注意,如果目标属性具有c个可能值,则熵最大可能到log2c.

下面分析,熵为什么用上面的式子定义,熵到底是什么?

为理解上面的式子(1),首先,考虑一个包含n个成员的集合{x1,x2, ..., xn},那么每个元素被抽取的等可能概率为p(xi)=1/n。那么根据信息论的内容,这个含有n个元素的集合的结果输出需要的信息量是:



使用二进制表示时b=2.这里说的信息量是指采用二进制表示信息可能的结果的个数需要的最小二进制位数。有点绕,举个例子,此文中都是指通过二进制表示。如果传递信息的可能结果只有2个,那么传递这个结果只需要0或1两种结果表达,也就是只需要1位二进制表示即可表示信息的可能结果的个数;当有n个可能结果时,n=2u,则需要u位二进制才能完全表示所有可能结果,这里u就是信息量。信息量也就结果的不确定度。
接着解释,由于p(xi)=1/n,那么



有了信息量,我们说,所有该集合中结果需要的平均信息量是多少,也即集合信息量的期望是什么?我们知道数学期望的定义是,所有可能的取值与概率的乘积的总和。这样,信息量的期望也是这样一个总和,即每种信息结果的信息量与该结果发生概率乘积的总和。



这个式子是不是就跟熵的定义式子一致了!这里的数学式子的含义就是信息量的期望,或者不确定度的期望;而信息论中熵的概念是衡量训练样本中集合纯度的标准。

2.2信息增益(information gain)

介绍完信息论中熵的概念,回到上面的话题,接着说ID3中使用的用来度量属性的分类训练数据能力的标准——信息增益。一个属性的信息增益是指,由于使用这个属性分割样本而导致的熵的降低。属性A相对于样本集S的信息增益Gain(S,A)定义为:



其中Value(A)是属性A所有可能值得集合,Sv是S中属性A的值为v的子集(

)。式子的第一项就是原来集合S的熵,第二项是用A分类S后熵的期望值。第二项中描述的期望熵就是每个子集的熵的加权和,权值为属于Sv的样本占原始样本集S的比例|Sv|/|S|。因此Gain(S,A)的值是由于知道属性A的值而导致的期望熵的减少。换句话来讲,Gain(S,A)是由于给定属性A的值而得到的关于目标函数值的信息。当对S的一个任意成员的目标值编码时,Gain(S,A)的值是在知道属性A的值后可以节省的二进制位数。

信息增益正是ID3算法增长树的每一步中选取最佳属性的度量标准。信息信息增益越大,说明采用该属性进行筛选后,信息熵变得越小,样本集合纯度更高。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: