一、算法原理
(1)基本算法
决策树(Decision Tree),基于“树”结构进行决策:
每个内部结点对应一个属性测试;
每个分支对应属性测试的一种可能取值;
每个叶结点对应一个决策结果。

学习过程:通过对训练样本的分析来确定“划分属性”(即内部结点所对应的属性)。
预测过程:将测试示例从根结点开始,沿着划分属性所构成的“判定测试序列”下行,直到叶结点。
策略:分而治之(Divide-and-Conquer)
自根至叶递归;
在每个内部结点寻找一个划分(或测试)属性。
递归停止条件:
当前结点包含的样本全属于同一类别,无需划分;
当前属性集为空, 或是所有样本在所有属性上取值相同,无法划分;
当前结点包含的样本集合为空,不能划分。

(2)划分
①信息增益
信息熵(Entropy):度量样本集合“纯度”最常用的一种指标。
假定当前样本集合D中第k类样本(k=1, 2, …, |y|)所占的比例为,则D的信息熵定义为:
Ent(D)的值越小,则D的纯度越高:
Ent(D)的最小值:0,此时D中只有一类;
最大值,此时D中每个样本都是一类。
信息增益(Information Gain):划分带来纯度的提升,信息熵的下降。
离散属性a的取值:
:D中在a上取值等于
的样本集合
以属性a对数据集D进行划分所获得的信息增益为:
信息增益越大,意味着使用属性a来进行划分所获得的“纯度提升”越大。