决策树算法之ID3

来源:互联网 发布:禁止外资参与网络出版 编辑:程序博客网 时间:2024/06/05 17:28

1.1 基本概念

ID3(Iterative Dichotmiser 3)算法是一种贪心算法,用于构造决策树。ID3算法起源于概念学习系统(CLS),以信息熵的下降速度为选取属性的标准,即每个节点选取还尚未被用来划分的具有最高信息增益的属性作为划分标准,重复这个过程,知道找到所有完美匪类驯良样例。

1.2 算法结构

  • Get the best attribute as A
  • Assign A as the decision tree for node
  • For each the value of A And create a descendant of node A
  • Sort the training examples to leaves.
  • If examples perfectly classified the training set ,stop. If not , return to the first step.

以上就是ID3算法的基本结构。这个结构的核心是:Get the best attribute,即获取最佳属性。

1.3 最佳属性及信息增益

在看本节之前需要先了解信息熵,如果不知道信息熵是什么,可以查看——信息熵

结合1.1的概念,ID3是基于信息熵下降速度为选取属性标准的,而信息熵是表示信息不确定的数值。我们可以通过信息熵得到当前信息的不确定度,而最佳属性是所有属性中信息熵的变化最大的即为最佳属性。我们也可以把他理解为:当最佳属性确定之后,我们可以将信息所代表的数据范围进行最优的切分。

从信息的角度讲解,就是这个最佳属性给我们带来的信息量越多,这个特征越重要。系统在有这个属性和没有这个属性发生的信息量变化的差值,就是信息增益(Information Gain)。而这也是通过信息熵判断一个属性是否是最佳属性的理论依据。信息增益的公式如下:

Gain(S,A)=Entropy(S)v|Sv||S|Entropy(Sv)

公式中的S代表你要查看的训练样本的集合;A代表特定属性,这个属性可以存在各种值,例如:对或错。不同的值我们使用v代替。Entropy(N)代表信息N的信息熵。

那么这个公式表示:特定属性A的信息增益等于整个样本的信息熵与属性A各个值的信息熵和的差值。我们通过这个公式计算出不同属性的信息增益,然后进行相应的比较来决定那个属性给我们带来的信息量最多,我们就会将这个信息量最多的属性作为最优属性来处理。

1.4 ID3的Bias(偏差)

为了避免关于偏差引起误解,如果读者不是对偏差有很详细的了解,希望先阅读这篇文章——偏差

首先在考虑空间搜索的算法的时候,我们出现两种偏差:

  • 限定偏差。以决策树来说明。当选用决策树模型的时候,我们默认选择的决策树(有点绕),并没有选择其它的。在实际的情况中,可能我们其它的方式比决策树更加适合,但是由于我们已经选定了,就会出现一些其它的偏差。是由于我们限定某一个标准之后出现的偏差。
  • 优选偏差。决策树在选择最佳属性的时候,并没有考虑不同属性之间的关联情况,而是默认选择当前的最优属性,这样在某种程度上也会导致偏差的出现。

ID3的归纳偏差:

  • 好的分割(好的属性)靠近树的根部。例如如果两个决策树都表示相同的结果,那么会优选更好的分割作为当前的节点。
  • 会倾向于为数据创建好的决策树模型,而不是差的模型。具体的话可以一句最优属性。
  • 倾向于更短的树而非更长的树。

1.5 ID3的代码实现

由于计划的缘故,这一部分笔者将在后续过程中补充上去。


原创粉丝点击