决策树-2 ID3算法
决策树-1基本概念中已经提到了ID3算法,这篇博客再梳理一遍,算法描述部分搬运了统计学习方法的内容,更详细内容可以参考这本书。
ID3 算法的思路
- 输入:训练集
D
, 特征集A
, 阈值ε
; - 分叉:最优属性划分依据是 最大信息增益;
- 结束条件:用完所有特征,特征信息增益很小,树的深度超过限制;
- 返回:一颗树
T
。
ID3 算法描述
这里的描述可作为编程实现时的指导,树的建立过程是递归实现。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def ID3Tree(D, A,ε ):
if D 的实例属于同类别 K || 特征集 A 特征空:
1. 决策树 T为单结点树
2. 标记类别 K (数量最多的类别)
return T
else:
1. 计算所有特征相对于 D 的信息增益
2. 找到信息增益最大特征 Amax
if Amax 小于 阈值 ε:
1. 决策树 T为单结点树
2. 标记类别 K (数量最多的类别)
return T
else:
依照特征 Amax 的每一个取值 ai,划分数据集Di, 并且标记Di类别,构建子节点
# 递归
对每个结点Di,以Di为训练集, A-Amax为特征集,递归调用 ID3Tree()
return 由结点和子结点构成的树