文章目录
一 前言
之前学习的很多都是基于连续实数或离散数值的特征向量的模式识别问题,例如在神经网络中,如果两个输入向量足够接近,那么它们的输出也很相似。然而,假定某个分类问题中需要用到**“语义数据”(nominal data 或称为标注数据、名义数据)**,这种数据没有任何相似性也无法度量。基于连续概率分布和距离度量的思路就不合适了。
我们的注意力从实数向量转向以非度量的语义属性,一种常见的表示方法是属性d元组
,例如:考虑用如下四种属性描述一种水果的情况:颜色、纹理、味道、尺寸。某个水果的4元组的表达是{红色,有光泽,甜,小}。
利用一系列查询问答来判断和分类是一种做法,有向的**决策树(decision tree)**可以表示这个过程:
- 每一个分支节点代表一个问答或选择的过程。
- 每一个叶节点代表一个分类或决策。
下面是一个典型的决策树模型:
决策树相对于其他分类器(如神经网络)的优点之一即可表示性。也就是说,树中所体现的语义信息可以利用逻辑表达式表示出来:苹果=(绿色 AND 中等大小) OR (红色 AND 中等大小)
树的另一个优点是分类速度很快,而且当问题比较简单以及训练样本很少时,这类专家的先验知识很有效。【1】
常见的决策树生成算法有CLS、ID3、C4.5、CART…
二 决策树学习生成算法
不同的决策树生成算法的差异不大,主要体现在决策树划分时每步属性的选择上,下面介绍总的决策树生成算法:
- 输入T为训练集数据,创建T节点
- 如果T节点中数据全属于同一类别C,将T节点标记为C类叶节点,返回决策树。
- 从T中选择出一个最佳属性X,X的取值为 v 1 , v 2 , . . . , v n v_1,v_2,...,v_n v1,v2,...,vn
- 根据X不同的取值将T分为不同的子集 T 1 , T 2 , . . . , T n T_1,T_2,...,T_n T1,T2,...,Tn,创建N个子节点 T i T_i Ti
- 对每个子节点 T i T_i Ti重复这个过程。
机器学习——周志华版对于决策树学习生成算法的描述:
对于不同的决策树生成算法,主要在于选择最佳属性的策略不同:
-
CLS:随机选择,可能生成的决策树太过冗余,根据奥卡姆剃刀定律:切勿浪费较多的东西去做,用较少的东西,同样可以做好的事。演变为ID3
-
ID3:信息增益
Information Gain
-
C4.5:增益率
GainRatio
-
CART:基尼指数
GiniIndex
三 ID3
ID3生成决策树算法全称为Iterative Dichotomizer (version 3)
。每次最佳属性的选择依赖于信息增益。
3.1 熵
信息熵Information Entropy
是度量样本集合的随机性(不确定性/不稳定性)最常用的一种指标。假定当前样本集合S
中第k类(共c类)样本所占的比例为 p k p_k pk,则S
关于类别的信息熵定义为:
E n t r o p y ( S ) = ∑ i = 1 c p i log 2 p i Entropy(S)=\sum_{i=1}^{c}p_i\log_2p_i Entropy(S)=i=1∑cpilog2pi
对于只有两个类别的集合S,其信息上关于其中一个类别的出现概率的函数图像为:
可以看到,当1类与2类占比相等时不确定性最大。信息熵最大
3.2 信息增益
假定离散属性A
有n
个可能的取值 { v 1 , v 2 , . . . , v n } \{v_1,v_2,...,v_n\} {v1,v2,...,vn},若使用A
来对样本集S
进行划分,则会产生n
个分支结点,其中第v
个分支结点包含了S
中所有在属性A上取值为 v v v_v vv的样本,记为 S v S_v Sv。我们可计算出 S v S_v Sv的信息熵,再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重 ∣ S v ∣ ∣ S ∣ \frac{|S_v|}{|S|} ∣S∣∣Sv∣,即样本数越多的分支结点的影响越大,于是可计算出用属性A
对样本集S
进行划分所获得的"信息增益" (information gain):
G a i n ( S , A ) = E n t r o p y ( S ) − ∑ v ∈ A ∣ S v ∣ ∣ S ∣ E n t r o p y ( S v ) Gain(S,A)=Entropy(S)-\sum_{v\in A}\frac{|S_v|}{|S|}Entropy(S_v) Gain(S,A)=Entropy(S)−v∈A∑∣S∣∣Sv∣Entropy(Sv)
3.3 ID3生成算法
以对东方人与西方人的分类为例,每个数据都有三个标签(身高,发色,眼睛)
每一轮我们分别计算每个属性的信息增益(Information Gain):
-
Height:
-
Hair:
-
Eye:
选出信息增益最大的属性(分类后的信息熵的加权和越小,不确定性越低)作为最佳属性构建决策树:
对比信息增益最小的属性作为最佳属性的决策树,可以明显的观察到树的结构有明显的优化:
3.4 ID3的优缺点
- Advantages:选择分区后信息增益大的分区属性,即使用该属性获得的子集纯度越高,不确定性越小。
- Disadvantage:信息增益偏向于可能值较多的属性
四 C4.5
ID3
生成决策树算法中Information Gain
会偏向于可能值较多的属性,但是对于某些属性比如:学号属性取值唯一,计算出来的信息增益将远大于其他属性。这个属性产生的分支结点中将仅包含一个样本,这些分支结点的纯度已经达到最大。然而,这样的决策树显然不具有泛化能力,无法对新样本进行有效预测。C4.5
算法是对ID3
的后继与改进,最优属性的决定依赖于信息增益率。
4.1 信息增益率
gainRatio
信息增益率可以对这一问题进行校正,可以作为选择最优划分属性的另一种准则。定义为属性A对数据集S的信息增益与数据集S关于属性A的信息熵的比,即:
G a i n R a t i o ( S , A ) = G a i n ( S , A ) I V ( A ) I V ( A ) = − ∑ v ∈ A ∣ S v ∣ ∣ S ∣ log ∣ S v ∣ ∣ S ∣ GainRatio(S,A)=\frac{Gain(S,A)}{IV(A)}\\ IV(A)=-\sum_{v\in A}\frac{|S_v|}{|S|}\log\frac{|S_v|}{|S|} GainRatio(S,A)=IV(A)Gain(S,A)IV(A)=−v∈A∑∣S∣∣Sv∣log∣S∣∣Sv∣
其中IV(A)
称为属性A的固有值,属性A的可能取值数目越多,IV(A)
的值越大。
需要注意的是,增益率准则对可取值数目较少的属性有所偏好,因此C4.5
算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式算法:先从候选划分属性中找出信息增益Information Gain
高于平均水平的属性,再从中选择增益率GainRatio
最高的【2】
五 CART
六 决策树相关问题
6.1 剪枝处理
6.2 连续值处理
6.3 缺失值处理
参考
【1】模式分类第二版
【2】机器学习—周志华