信息熵
在信息论中,熵被用来衡量一个随机变量出现的期望值,它是随机变量的期望,用来度量信息的不确定程度。熵是整个系统的平均消息量。
一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以,信息熵也可以说是系统有序化程度的一个度量。处理信息就是为了把信息搞清楚,就是熵减少的过程。一个属性的熵越大,它蕴含的不确定信息越大,越有利于数据的分类。这种信息理论方法使得对一个对象分类所需的期望测试数目达到最小,并尽量确保找到一棵简单的树来刻画相关的信息。
信息论中,事件ai的信息量(又叫信息本体)I(ai )可如下度量:
其中p(ai)表示事件ai发生的概率。假设有n个互不相容的事件a1,a2,a3,….,an,它们中有且仅有一个发生,则其平均的信息量(又叫先验熵)可如下度量:
设S是s个数据样本的集合。假设类标号属性具有m个不同的值,定义m个不同类
Ci(i=1,2,....,m)。设si是Ci中样本的个数。对一个给定的样本分类所需的期望信息量有下面
公式给出:
其中pi是任意样本属于Ci的概率,一般可用si/s来估计。
设属性A具有v个不同的值{a1,a2,...,av}。可以用属性A将S划分为v个子集{S1,S2,....Sv},其
中Sj包含S中这样的一些样本,它们在A上具有值aj。如果用A作为测试属性(即最好的分裂
属性),则这些子集对应于包含集合S的结点生长出来的分支。
设sij是集合Sj中类Ci的样本数。根据由属性A划分子集的熵由下式给出:
充当第j个子集的权,并且等于字集(即A值为aj)中样本个数除以S中样本总数。熵值越小,子集划分的纯度越高,说明选择属性A作为决策节点的效果
越好。
由期望信息和熵值可以得到对应的信息增益值。对于在A上分支将获得的信息增益可
以由下面的公式得到:
信息增益就是这两个熵的差值。熵表示系统的不稳定程度,Gain(S,A)越大,系统熵减小的也就越快,表示条件A对于确定系统的贡献越大,说明选择测试属性A作为决策节点对分类提供的信息越多,系统趋于稳定的速度也更快。
ID3根据信息增益,运用自顶向下的贪心策略建立决策树。信息增益用于度量某个属性对样本集合分类的好坏程度。由于采用了信息增益,ID3算法建立的决策树规模比较小,查询速度快。
ID3算法缺点
信息增益度度量存在一个内在偏置,它偏袒具有较多值的属性,举一个极端的例子,如果有一个属性为日期,那么将有大量的值,太多的属性值把训练样例分割成非成小的空间,单独的日期就可能完全预测训练数据的目标属性,因此,这个属性可能会有非常高的信息增益,该属性可能会被选为根结点的决策属性并形成一棵深度为一级但却非常宽的树,这棵树可以理想的分类训练数据。但是这个决策树对于测试数据的分类性能可能会非常差,因为它过分完美地分割了训练数据,它不是一个好的分类器。
除此之外,ID3算法增长树的每一个分支深度,指导恰好能对训练样例完美的分类。然而整个策略并非行得通。事实上,当数据中有噪声或训练样例的数量太少以至于不能产生目标函数的有代表性采样时,这个策略便会遇到困难,导致过度拟合训练集。
另外ID3算法只能处理离散类型的数据。
ID3算法在搜索的过程中不能进行回溯,每当在树的某一层次选择了一个属性进行测试,它不会再回溯重新考虑这个选择。所以,它易受无回溯的爬山搜索中的常见风险影响:收敛到局部最优的答案,而不是全局最优。
ID3算法在搜索的每一步都使用当前的所有训练样例,以统计为基础决定怎样精化当前的假设。这与那些基于单独的训练样例递增作出决定的方法不同。使用所有样例的统计属性(例如:信息增益)的一个优点是大大降低了对个别训练样例错误的敏感性。因此,通过修改ID3算法的终止准则以接受不完全拟合训练数据的假设,是可以很容易的扩展到处理含有噪声的训练数据。
剪枝
有几种途径可被用来避免决策树学习中的过度拟合,它们分为两类:
1.预先剪枝 及早停止树的增长,在ID3算法完美分类训练数据之前就停止树的增长。
2.后剪枝 即允许树过度拟合数据,然后对这个树进行后修剪。
尽管第一种方法可能看起来更直接,但是对过度拟合的树进行后修剪的第二中方法在实践中更成功。这是因为在第一种方法中精确地估计何时停止树增长是很困难的。
C4.5算法概述
C4.5算法是从ID3算法演变而来,除了拥有ID3算法的功能外,C4.5算法引入了新的方法和增加了新的功能。例如:
1.用信息增益比例的概念
这里属性A具有v个不同的值{a1,a2,...,av}。可以用属性A将S划分为v个子集{S1,S2,....Sv},其
中Sj包含S中这样的一些样本,它们在A上具有值aj。
2. 合并具有连续值的属性
ID3算法最初假定属性离散值,但在实际环境中,很多属性值是连续的。C4.5算法能够处理具有连续的属性值。
3. 处理含有未知属性值的训练样本
C4.5处理的样本可以含有未知属性值,其处理方法是用最常用的值替代或者将最常用的值分在同一类中。具体采用概率的方法,依据属性已知的值,对属性和每一个值赋予一个概率,取得这些概率依赖于该属性已知的值。
4. 产生规则
一旦树被简历,就可以把树转换成if-then规则。