决策树
决策树模型与学习
- 决策树由节点(内部节点+叶节点)和有向边组成。内部节点表示一个特征或属性,叶节点 - 表示一个类。
- 决策树对应的if-then规则有一个重要的性质:互斥并且完备。
- 决策树是给定特征条件(特征空间中互不相交的单元或区域)下的一种条件概率分布。
- 决策树学习的步骤:
- 特征选择
- 递归生成
- 剪枝泛化
- 决策树学习常用算法有:ID3、C4.5、CART
特征选择
- 信息增益
特征选择是决定用哪个特征来划分特征空间。信息增益是一种选择特征的准则。
- 熵的定义
X 是一个离散随机变量,其概率分布为P(X=xi)=pi,i=1,2,...,n. 随机变量 X 的熵定义为
H(X)=−∑i=1npilogpi
熵与 X 的取值无关,只与X 的分布有关,熵也可记作 H(p) ,熵越大,随机变量的不确定性越大。可以证明 0≤H(p)≤logn - 条件熵
H(Y|X) 定义为 X 给定条件下Y 的条件概率分布的熵对 X 的数学期望
H(Y|X)=∑i=1npiH(Y|X=xi)
概率由数据估计(特别是极大似然估计)得到时,熵和条件熵分别称为经验熵和经验条件熵。 - 信息增益表示得知特征
X
的信息而使得类
Y 的信息不确定性减少的程度。特征 A 对训练数据集D 的信息增益,定义为
g(D,A)=H(D)−H(D|A)
根据信息增益准则的特征选择方法是:对训练数据集(或子集)D,计算其每个特征的信息增益,选择信息增益最大的特征。 - 信息增益的算法
1、计算数据集D的经验熵,其中K是总类数
H(D)=−∑k=1K|Ck||D|log2|Ck||D|
2、计算特征A对数据集D的经验条件熵,其中n表示根据特征A可以将D分类成n类
H(D|A)=∑i=1n|Di||D|H(Di)=−∑i=1n|Di||D|∑k=1K|Dik||D|log2|Dik||D|
3、计算信息增益
g(D,A)=H(D)−H(D|A)
- 熵的定义
- 信息增益比
以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题。使用信息增益比可以对这一问题进行校正,这是特征选择的另一准则。
gR(D,A)=g(D,A)HA(D)
其中, HA(D) 是数据集D关于特征A的值的熵 HA(D)=∑ni=1|Di||D|log2|Di||D| ,n是特征A取值的个数
决策树的生成
- ID3算法
输入:训练数据集D,特征集A,阈值ε;
输出:决策树T。
(1)若D中所有实例属于同一类 Ck ,则T为单节点树,并将类 Ck 作为该节点的类标记,返回T;
(2)若A是空寂,则T为单节点树,并将D中实例数最大的类 Ck 作为该节点的类标记,返回T;
(3)否则,计算A中各特征对D的信息增益,廁信息增益最大的特征 Ag ;
(4)如果 Ag 的信息增益小于阈值ε,则置T为单节点树,并将D中实例数最大的类 Ck 作为该节点的类标记,返回T;
(5)否则,对 Ag 的每一可能值 ai ,依 Ag=ai 将D分割为若干非空子集 Di ,将 Di 中实例数最大的类作为标记,构建子节点,由节点及其子节点构成数T,返回T;
(6)对第i个子节点,以 Di 为训练集,以 A−Ag 为特征集,递归地调用(1)到(5)步,得到子树 Ti ,返回 Ti 。 - C4.5算法
C4.5在生成的过程中,用信息增益比来选择特征。
决策树的剪枝
- 剪枝算法
输入:生成算法产生的整个树T,参数α;
输出:修剪后的树 Tα 。
(1)计算每个节点的经验熵;
(2)递归地从树的叶节点向上回缩,设一组叶节点回缩到其父节点之前与之后的整体树分别为 TB与TA ,损失函数分别是 Cα(TB)与Cα(TA) ,如果 Cα(TB)>Cα(TA) ,则进行剪枝,即将父节点变为新的叶节点。
(3)返回(2),直到不能继续为止,得到损失函数最小的子树 Tα 。
CART算法
- 回归树的生成
平方误差最小化准则 - 分类树的生成
基尼指数最小化准则
基尼指数
Gini(D)=1−∑k=1K(|Ck||D|)2
其中, Ck 是D中属于第k类的样本子集,K是类的个数
如果样本集合D根据特征A是否取某一可能值a被分割成 D1和D2 ,则在特征A条件下,集合D的基尼指数定义为
Gini(D,A)=|D1||D|Gini(D1)+|D2||D|Gini(D2)
Gini(D)表示集合D的不确定性,Gini(D, A)表示经A = a分割后集合D的不确定性 - CART剪枝
剪枝形成一个子树序列;然后通过交叉验证法在独立的验证数据集上对子树序列进行测试,从中选择最优子树。
参考文献:李航《统计学习方法》