携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情
ID3(迭代二分法3)是用于决策的算法。 它用于决策树。 澳大利亚研究员J. Ross Quinlan于1986年首次发表了该算法。ID3在它早年非常有影响力。 现在仍在某些产品中使用。 ID3被认为是C4.5算法的前身。
对于大数据,当有很多不同的属性(特征)都很重要时,通常用ID3算法,并且因此一个决策树无需大量计算就可以生成。 这通常会导致简单的决策树。但是不能保证它是最好的决策树。
ID3的基本结构是迭代的。 对于每个未使用的属性,计算属性的熵。 选择具有最高信息增益(英语:信息增益)或最小熵的属性,并由此生成新的树节点。 当所有训练实例都被分类时,该程序终止。也就是说, 如果为每个叶节点分配了一个类。
详细算法如下:
ID3 算法以原始集合S作为根节点开始。在算法的每次迭代中,它遍历集合S的每个未使用属性,并计算该属性对数据分割后的熵H(S)(或信息增益IG(S)))。然后选择熵值最小(或信息增益最大)的属性。然后,集合S被选择的属性分割(例如年龄小于50,年龄在50到100之间,年龄大于100)来生成数据子集。算法继续对每个子集进行递归,只考虑以前从未选择过的属性。
对于子集的递归可能会在以下某种情况下停止:
1. 子集中的每个元素都属于同一个类,然后节点被转换为一个叶节点,并被标记为示例的类。
2. 没有更多的属性可供选择,但这些元素(数据)仍然不属于同一个类(有些是+,有些是 - ,从每个节点向下走都是以二元形式),然后节点变成了一个叶节点。并被标记为子集中最常见的示例类。
3. 在子集中没有示例(样本数据),当在父集中没有找到匹配所选属性的特定值的示例(数据特征)时,就会发生这种情况,例如,如果没有age = 100的示例。然后创建一个叶子,并使用父集中最常见的示例类进行标记。
在整个算法中,决策树是由每个代表所选属性(特征)的非终端节点(数据将在此按特征被分割,或称数据分流)和表示该分支最后子集的类标签的终端节点构成。