决策树
- 是一种树形结构;
- 其中每个内部节点表示一个属性上的判断,每个分支代表一个判断结果的输出;
- 最后每个叶节点代表一种分类结果;
- 本质是一颗由多个判断节点组成的树。
决策树分类原理
1 信息熵
-
物理学上,熵是“混乱”程度的量度。
-
1948年香农提出了信息熵(Entropy)的概念。
(1)从信息的完整性上进行的描述:
当系统的有序状态一致时,数据越集中的地方熵值越小,数据越分散的地方熵值越大。
(2)从信息的有序性上进行的描述:
当数据量一致时,系统越有序,熵值越低;系统越混乱或者分散,熵值越高。 -
"信息熵" (information entropy)是度量样本集合纯度最常用的一种指标。
其中:信息熵Ent(D) 的值越小,则 D 的纯度越高(每个事件概率相同时,熵最大,这件事越不确定)
2 决策树的划分依据
2.1 信息增益(ID3)
信息增益(information gain):以某特征划分数据集,划分前后的熵的差值。 熵可以表示样本集合的不确定性,熵越大,样本的不确定性就越大。因此可以使用划分前后集合熵的差值来衡量使用当前特征对于样本集合D划分效果的好坏。
一般而言,信息增益越大,则意味着使用属性 a 来进行划分所获得的"纯度提升"越大。因此,我们可用信息增益来进行决策树的划分属性选择,著名的 ID3 决策树学习算法 [Quinlan,1986] 就是以信息增益为准则来选择划分属性。
其中,ID3 名字中的 ID 是 Iterative Dichotomiser (迭代二分器)的简称
2.2 信息增益率(C4.5)
- 实际上,信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,著名的 C4.5 决策树算法 [Quinlan, 1993J 不直接使用信息增益,而是使用"增益率" (gain ratio) 来选择最优划分属性。
- 增益率:增益率是用前面的信息增益Gain(D|a)和属性a对应的"固有值"IV(a) (intrinsic value) 的比值来共同定义的。
- 属性 a 的可能取值数目越多(即 V 越大),则 IV(a) 的值通常会越大。
- C4.5算法的流程
while(当前节点"不纯"):
1.计算当前节点的类别熵(以类别取值计算)
2.计算当前阶段的属性熵(按照属性取值吓得类别取值计算)
3.计算信息增益
4.计算各个属性的分裂信息度量
5.计算各个属性的信息增益率
end while
当前阶段设置为叶子节点
- C4.5算法的优点
(1)用信息增益率来选择属性
克服了用信息增益来选择属性时偏向选择值多的属性的不足。
(2)采用了一种后剪枝方法
避免树的高度无节制的增长,避免过度拟合数据
(3)对于缺失值的处理
在某些情况下,可供使用的数据可能缺少某些属性的值。假如〈x,c(x)〉是样本集S中的一个训练实例,但是其属性A的值A(x)未知。处理缺少属性值的一种策略是赋给它结点n所对应的训练实例中该属性的最常见值;另外一种更复杂的策略是为A的每个可能值赋予一个概率。
例如,给定一个布尔属性A,如果结点n包含6个已知A=1和4个A=0的实例,那么A(x)=1的概率是0.6,而A(x)=0的概率是0.4。于是,实例x的60%60%被分配到A=1的分支,40%40%被分配到另一个分支。
C4.5就是使用这种方法处理缺少的属性值。
2.3 基尼指数(Cart剪枝)
- CART 决策树使用"基尼指数" (Gini index)来选择划分属性
- CART 是Classification and Regression Tree的简称,这是一种著名的决策树学习算法,分类和回归任务都可用
- 基尼值:从数据集D中随机抽取两个样本,其类别标记不一致的概率。故,Gini(D)值越小,数据集D的纯度越高
- 基尼指数Gini_index(D):一般,选择使划分后基尼系数最小的属性作为最优化分属性。
- CART的算法流程
while(当前节点"不纯"):
1.遍历每个变量的每一种分割方式,找到最好的分割点
2.分割成两个节点N1和N2
end while
每个节点足够“纯”为止