本文来自我个人博客:www.chenbiaolong.com
概述
决策树学习是一种逼近离散值目标函数的方法,简单来说它可以被表示为多个的if-then的规则表达式。在本文中先主要介绍决策树的基本概念,主要包括熵的概念以及如何选择最优的数据集划分方式
数据准备
这里我们使用《机器学习》(Tom M.Mitchell著)中的例子作为分析的数据源。这颗决策树根据天气情况分类“星期六上午是否适合打网球”。
从图中可以看出决定是否打球的因素主要有:outlook(天气)、humidity(湿度)和wind(风力)。那么这三个属性哪一个属性是最优的数据集划分方式呢?即我们得到哪一个属性值可以有最大的概率判断出最终的结果(yes或no)呢?获得最优的数据划分方式有一个优势是可以将该属性放在前几个判断节点上,这样在处理大量的数据时可以减少整体数据集的平均搜索深度。这里就需要引入信息熵的概念。
信息增益的度量标准:熵
熵的具体定义参考维基百科。简单的说熵是衡量一个系统的无序程度的物理单位,一个系统越混乱,该系统的熵越大。在信息领域中我们对数据进行分析得到结果的过程是一个熵减过程。
对于一个bool型的系统,给定包含关于某个目标概念的正反样例的样例集S,那么S相对这个布尔型分类的熵为:
Entropy(S)=−p+log2p+−p−log2p−
上述公式中,p+代表正样例,比如在本文例子中p+则意味着去打球,而p-则代表反样例,不去打球(在有关熵的所有计算中我们定义0log0为0)。
举例来说,假设S是一个关于布尔概念的有14个样例的集合,它包括9个正例和5个反例(我们采用记号[9+,5-]来概括这样的数据样例),那么S相对于这个布尔样例的熵为: