顾名思义, 决策树是基于树结构来进行决策的, 这也是人类面临决策问题时的一种很自然的处理机制. 比如, 我们对”这是好瓜吗?”这个问题进行决策时, 通常会进行一系列的判断, 先看它是什么颜色, 如果是青绿色, 再看它的根蒂是什么形态, 如果是蜷缩, 再看它敲起来是什么声音, 最终我们得到判断, 这是个好瓜。 决策树的形态大致如下图所示
基本算法:
输入: 训练集
D={(x1,y1),(x2,y2),...,(xm,ym)}
属性集
A={a1,a2,...,ad}
过程: 函数 TreeGenerate(
D,A
)
1: 生成节点node
2: if
D
中样本全属于同一类别
3: 将node标记为
C
类叶结点; return
4: end if
5: if
6: 将node标记为叶结点, 其类别标记为
D
中样本数最多的类; return
7: end if
8: 从
9: for
a∗
的每个值
av∗
do
10: 为node 生成一个分支; 令
Dv
为
a∗
上取值为
av∗
的样本子集;
11: if
Dv=∅
then
12: 将分支结点标记为叶结点, 其类别标记为
D
中样本数最多的类; return
13: else
14: TreeGenerate(
15: end if
16:end for
输出:以node为根结点的决策树
Reference
- 机器学习 - 周志华 清华大学出版社