[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-302GlXLq-1593705732576)(./决策树/分类示意图.png)]
决策树通过把数据样本分配到某个叶子结点来确定数据集中样本所属的分类决策树由结点、分支和叶子结点组成 决策结点表示在样本的一个属性上进行的划分分支表示对于决策结点进行划分的输出叶结点代表经过分支到达的类 从决策树根结点出发,自顶向下移动,在每个决策结点都会进行次划分,通过划分的结果将样本进行分类,导致不同的分支,最后到达叶子结点,这个过程就是利用决策树进行分类的过程决策树学习的关键是,如何选择最优划分属性。一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)
西瓜数据集,如下图所示: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2YfKeEFv-1593705732580)(./决策树/西瓜数据集2.0.png)]
“信息熵”(information entropy)是度量样本集合纯度最常用的一种指标。假定当前样本集合 D D D中的第 k k k类样本所占的比例为 p k ( k = 1 , 2 , . . . , ∣ y ∣ p_k(k=1,2,...,|y| pk(k=1,2,...,∣y∣),则 D D D的信息熵定义为 E n t ( D ) = − ∑ 1 ∣ y ∣ p k ∗ l o g 2 p k Ent(D)=-\sum_1^{|y|}p_k*log_2{p_k} Ent(D)=−1∑∣y∣pk∗log2pk E n t ( D ) Ent(D) Ent(D)的值越小,则 D D D的纯度越高。
假定离散属性 a a a有 V V V个可能的取值 { a 1 , a 2 , . . . , a V } \{a^1,a^2,...,a^V \} {a1,a2,...,aV},若使用 a a a来对样本集 D D D进行划分,则会产生 V V V个分支结点,其中第 v v v个分支结点包含了 D D D中所有在属性 a a a上取值为 a v a^v av的样本,记为 D v D^v Dv。根据上述公式计算出 D D D的信息熵,再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重 ∣ D v ∣ / ∣ D ∣ |D^v|/|D| ∣Dv∣/∣D∣,即样本数越多的分支结点的影响越大,于是可以计算出用属性 a a a对样本集 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)-\sum_{v=1}^{V}\frac{|D^v|}{|D|}Ent(D^v) Gain(D,a)=Ent(D)−v=1∑V∣D∣∣Dv∣Ent(Dv) 一般而言,信息增益越大,则意味着使用属性 a a a来划分所获得的“纯度提升”越大。因此,我们可用信息增益来进行决策树的划分属性选择,即在算法流程的第8行选择属性 a ∗ = a r g max a ∈ A G a i n ( D , a ) a_*=arg\, \max_{a\in A} Gain(D,a) a∗=argmaxa∈AGain(D,a)。著名的ID3决策树学习算法 [ Q u i n l a n , 1986 ] [Quinlan,1986] [Quinlan,1986]就是以信息增益为准则来选择划分属性。
下面给出对根结点信息熵的计算ID3.py
整个数据集的原始香农熵 0.998 各个属性的信息增益 色泽 = 0.108 根蒂 = 0.143 敲声 = 0.141 纹理 = 0.381 脐部 = 0.289 触感 = 0.006 纹理 的信息增益最大= 0.381但是当每个分支结点仅包含一个样本时,这些分支结点的纯度已达到最大(如,编号列)。然而,这样的决策树显然不具有泛化能力,无法对新样本进行有效的预测。
实际上,信息增益准则对可能取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,著名的 C 4.5 C4.5 C4.5决策树算法 [ Q u i n l a n , 1993 ] [Quinlan,1993] [Quinlan,1993]不直接使用信息增益,而是使用“增益率”(gain ratio)来选择最优的划分属性,增益率定义为: G a i n R a t i o n ( D , a ) = G a i n ( D , a ) I V ( a ) GainRation(D,a) = \frac{Gain(D,a)}{IV(a)} GainRation(D,a)=IV(a)Gain(D,a) 其中 I V ( a ) = − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ log 2 ∣ D v ∣ ∣ D ∣ IV(a) = -\sum_{v=1}^{V}\frac{|D^v|}{|D|}\log_2{\frac{|D^v|}{|D|}} IV(a)=−v=1∑V∣D∣∣Dv∣log2∣D∣∣Dv∣ 称为 a a a的“固有值” ( i n t r i n s i c v a l u e ) [ Q u i n l a n , 1993 ] . (intrinsic value)[Quinlan, 1993]. (intrinsicvalue)[Quinlan,1993]. 属性 a a a的可能取值数目越多(即 V V V越大),则 I V ( a ) IV(a) IV(a)的值通常会很大。
需要注意的是,增益率准则对可取值数目较少的属性有所偏好,因此, C 4.5 C4.5 C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式 [ Q u i n l a n , 1993 ] : [Quinlan, 1993]: [Quinlan,1993]: 先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
大的候选划分属性,而是使用了一个启发式 [ Q u i n l a n , 1993 ] : [Quinlan, 1993]: [Quinlan,1993]: 先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。
