《第四章》决策树
1. 基本流程
决策树(decision tree):从给定训练数据集学得一个模型用以对新示例进行分类。
决策树模型是基于树模型进行决策的,与人类在面临决策时的机制相似。
决策过程的最终结论对应了我们希望的判定结果:“是不是好瓜”
决策过程中提出的判定问题都是对某个属性的测试:“色泽=?”
每个测试结果要么导出最终结论,要么到处进一步的判定问题,且考虑范围实在上次决策结果的限定范围之内,如:在“色泽=青绿”之后再判断“根蒂=?”,则仅考虑青绿瓜的根蒂。
一般来说,对于一颗决策树,只包含一个根节点、若干内部节点、若干叶子节点。
- 叶子结点对应于决策结果,内部结点对应于一种属性的测试。
- 每个结点包含的样本集合根据属性测试的结果被划分到子结点中。
- 根结点包含样本全集。
- 从根节点到每个叶子节点的路径对应一个测试序列。
- 决策树的目的:产生一棵泛化能力强,即处理未见示例能力强的决策树。
三种递归终止条件:
- 当前结点包含的样本全部属于同一类。
- 当前属性集为空,或所有样本在所有属性上取值相同。
- 当前结点包含的样本集合为空。
2.划分选择
最重要的是如何选择最优划分属性。一般来说,随着划分过程不断进行,决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高。
2.1 信息增益——ID3
假定当前样本集合 D D D中第 k k k类样本所占的比例为 p k ( k = 1 , 2 , . . . , ∣ y ∣ ) p_k(k=1,2,...,|y|) pk(k=1,2,...,∣y∣)
- 信息熵(information entropy): E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k l o g 2 p k Ent(D)=-\displaystyle \sum_{k=1}^{|y|}p_klog_2p_k Ent(D)=−k=1∑∣y∣pklog2pk
E n t ( D ) Ent(D) Ent(D)的值越小,则 D D D越纯。
- 信息增益(information gain): G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D,a)=Ent(D)-\displaystyle \sum_{v=1}^V\frac{|D^v|}{|D|}Ent(D^v) Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv)其中 ∣ D v ∣ D \frac{|D^v|}{D} D∣Dv∣是分支结点的权重。
2.2增益率——C4.5
增益率(gain radio): G a i n _ r a d i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain\_radio(D,a)=\frac{Gain(D,a)}{IV(a)} Gain_radio(D,a)=IV(a)Gain(D,a)
I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ D IV(a)=-\displaystyle \sum_{v=1}^V\frac{|D^v|}{|D|}log_2\frac{|D^v|}{D} IV(a)=−v=1∑V∣D∣∣Dv∣log2D∣Dv∣
其中 a a a称为属性的“固有值”(intrinsic value)
2.3 基尼指数——CART
-
基尼值(Gini index): G i n i ( D ) = ∑ k = 1 ∣ y ∣ ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 ∣ y ∣ p k 2 Gini(D)=\displaystyle\sum_{k=1}^{|y|}\sum_{k\prime\not=k}p_kp_{k\prime}=1-\displaystyle\sum_{k=1}^{|y|}p_k^2 Gini(D)=k=1∑∣y∣k′=k∑pkpk′=1−k=1∑∣y∣pk2
-
基尼指数 G i n i _ i n d e x ( D , a ) = ∑ v = 1 V ∣ D v ∣ D G i n i ( D v ) Gini\_index(D,a)=\displaystyle\sum_{v=1}^V\frac{|D^v|}{D}Gini(D^v) Gini_index(D,a)=v=1∑VD∣Dv∣Gini(Dv)
在划分选择的时候,选择划分后基尼指数最小的属性作为最优划分属性。