首页 > 代码库 > 每日一个机器学习算法——信息熵

每日一个机器学习算法——信息熵

1 定义

2 直观解释

信息熵用来衡量信息量的大小

若不确定性越大,则信息量越大,熵越大

若不确定性越小,则信息量越小,熵越小

比如A班对B班,胜率一个为x,另一个为1-x

则信息熵为 -(xlogx + (1-x)log(1-x))

求导后容易证明x=1/2时取得最大,最大值为2

也就是说两者势均力敌时,不确定性最大,熵最大。

3 应用

数据挖掘中的决策树。

构建决策树的过程,就是减小信息熵,减小不确定性。从而完整构造决策树模型。

所以我们需要在每一次选择分支属性时,计算这样分类所带来的信息熵的增益,增益越大,不确定性越小,最终也就是我们要选择的分支属性。

首先我们会在未进行任何分类前求取一个信息熵,这个信息熵涉及到只是简单的求取样本标签的分布,然后按照公式求解信息熵。

之后在选用某一个属性作为分支属性后,我们需要计算每一个子分支中的样本标签的分布,然后计算每个子样本的信息熵,最后加权平均(期望),求得总的信息熵。

计算前后两个信息熵的差值,选择最大的增益属性作为分支属性。

一直递归下去,对每一个子样本套用上述方法。直到所有的样本都被归类于某个叶节点,即不可再分为止。

以上方法是ID3方法,还有更好的C4.5方法

C4.5方法选用信息增益比,克服了ID3使用信息增益选择属性时偏向取值较多的属性的不足。

除了可以处理离散类型的属性,还可以处理连续型。

处理连续型属性时,最重要的一步确定分割点。这里同样需要用到信息增益比。

我们可以人工的为选择一系列的分割点,然后分别计算被分割点分割的前后两个区间的信息熵,最后加权求得该分割点情况下的信息熵。

最后取信息增益最大的分割点作为分割条件。

简而言之,和ID3相比,就是在计算分割点的时候,需要额外用到一次信息增益法。

 

每日一个机器学习算法——信息熵