ID3.5&C4.5&CART决策树里几个关键公式

ID3.5

信息熵(entropy)

度量样本集合“不纯度”或者“混乱程度”的最常用指标,熵值越大,混乱程度越大,纯度越低;熵值越小,混乱程序越小,纯度越高

E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k l o g 2 p k Ent(D)= - {\sum_{k=1}^{|y|}}p_k{log_2^{p_k}} Ent(D)=k=1ypklog2pk

其中D为样本集, ∣ y ∣ |y| y为类别总数, k k k为当前类别号, p k p_k pk k k k类别在整个样本集中出现的概率。计算信息熵时约定:若 p = 0 , 则 p l o g 2 p = 0 p=0,则p {log{_2^p}}=0 p=0,plog2p=0

当样本集合中 k k k类样本出现的概率 p k p_k pk相等时,熵值最大,最大值 l o g 2 ∣ y ∣ {log_2^{|y|}} log2y,即混乱程度最大,纯度最低;相反,当样本集合中全是一个类别,熵值最小,最小值为0,纯度最高,混乱程度最低。
在这里插入图片描述

信息增益

信息增益直接以信息熵为基础,计算以某个属性划分对信息熵造成的变化,即让信息熵增大或者减小了,当然我们要选一个让熵值下降最多的属性去做划分,做决策树的目的就是使树往熵值更小的方向走。

样本的离散属性 a = { a 1 , a 2 , . . . , a V } a=\{a^1,a^2,...,a^V\} a={a1,a2,...,aV},如经典的西瓜集的“色泽”属性{青绿,乌黑,浅白}。
D v D^v Dv:D在 a a a上取值为 a v a^v av样本集合,即D中属性为 a v a^v av的样本集合,注意是个集合,如西瓜中色泽属性为乌黑的子集。
以属性 a a a对样本集D进行划分的话,我们获得的信息增益为:

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 \cfrac{|D^v|}{|D|} Ent(D^v) Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)

在这里插入图片描述

信息增益 G a i n ( D , a ) Gain(D, a) Gain(D,a)评判在 a a a属性上划分前后,信息熵能减少多少,即划分后纯度能提高多少

在这里插入图片描述

C4.5

信息增益率

ID3缺点就是选择的时候容易选择一些比较容易分纯净的属性,尤其在具有像ID值这样的属性,因为每个ID都对应一个标签,所以分的很纯净,ID3比较倾向找到这样的属性做分裂。
C4.5定义了信息增益率Gain_ratio()避免了这个缺点
G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( D , a ) Gain\_ratio(D, a) = \cfrac{Gain(D, a)}{IV(D, a)} Gain_ratio(D,a)=IV(D,a)Gain(D,a)
I V ( D , a ) = ∑ v = 1 V ∣ D v ∣ ∣ D ∣ l o g 2 ∣ D v ∣ ∣ D ∣ IV(D, a) = \sum_{v=1}^V \cfrac{|D^v|}{|D|} log_2^{\cfrac{|D^v|}{|D|}} IV(D,a)=v=1VDDvlog2DDv

属性a的类别越多(即V越大),则 I V ( D , a ) IV(D, a) IV(D,a)的值通常就越大。
其实可以看出上面 I V ( D , a ) IV(D, a) IV(D,a)公式和信息熵公式 E n t ( D ) Ent(D) Ent(D)是一样的,集合里面越混乱,值越大,同时最大值为 l o g 2 ∣ y ∣ log_2^{|y|} log2y,在这里 ∣ y ∣ = ∣ V ∣ |y| = |V| y=V即属性a下面的类别,类别数越多分布越平均, I V ( D , a ) IV(D, a) IV(D,a)值越大,使得 G a i n _ r a t i o ( D , a ) Gain\_ratio(D, a) Gain_ratio(D,a)值越小。

启发式:先从候选划分属性中找出信息增益高于平均水平的,之后在从中选择信息增益率最高的作为下一个分裂的属性

C4.5ID3.5很像,只是前者选择了信息增益率来作为属性选择的判定标准。

CART

基尼指数

基尼指数反应了从样本集D中有放回的随机抽取两个样例,其类别标记不一样的概率。Gini(D) 越小,抽取的两个样本类别不一样的概率越小,一样的概率越大,即样本集D纯度越高。

G i n i ( D ) = ∑ k = 1 ∣ y ∣ ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 ∣ y ∣ p k 2 Gini(D) = \sum_{k=1}^{|y|} \sum_{k'\neq k} p_k p_{k'} = 1 - \sum_{k=1}^{|y|}{p_k}^2 Gini(D)=k=1yk=kpkpk=1k=1ypk2

该公式很好的代表了摸两次球类别不同的概率,第一个等号后的式子表示两次摸球均不同的概率和,如三个小球,摸到12,13,21,23,31,32的概率之和;第二个等号后面的式子表示用总概率和1减去两次摸球都相同的概率,即1减去摸到11,22,33球的概率,二者相等。

显然,当集合D中的数据类别都相同时,两次摸到相同类别的球的概率就大, G i n i ( D ) Gini(D) Gini(D)就小,反之,当集合中类别很多且分布均匀时, G i n i ( D ) Gini(D) Gini(D)值就大。

我们对集合中的每一个属性 a a a都计算该属性下的基尼指数 G i n i _ i n d e x ( D , a ) Gini\_index(D,a) Gini_index(D,a),找出基尼指数最小的属性,首先分裂它。

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) = \sum_{v=1}^{|V|} \cfrac{|D^v|}{|D|} Gini(D^v) Gini_index(D,a)=v=1VDDvGini(Dv)

需要注意的是:CART是一个二叉树即无论a属性下有几个分支,都会化成二叉树计算对应的 G i n i _ i n d e x ( D , a ) Gini\_index(D,a) Gini_index(D,a),然后来评估优先分裂哪个属性,例如属性 a a a有三个类别A,B,C,CART对属性 a a a计算时,会将类别分成(A,非A(即BC)),(B,非B),(C,非C)来分别计算属性a的基尼系数,最终用最小的方案来建树。建树完成后就进行第二步了,即根据验证数据进行剪枝。详细参考这里

基尼指数与熵泰勒展开后的相似性

基尼指数
G i n i ( D ) = ∑ k = 1 ∣ y ∣ ∑ k ′ ≠ k p k p k ′ = 1 − ∑ k = 1 ∣ y ∣ p k 2 Gini(D) = \sum_{k=1}^{|y|} \sum_{k'\neq k} p_k p_{k'} = 1 - \sum_{k=1}^{|y|}{p_k}^2 Gini(D)=k=1yk=kpkpk=1k=1ypk2


E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k l o g 2 p k Ent(D)= - {\sum_{k=1}^{|y|}}p_k{log_2^{p_k}} Ent(D)=k=1ypklog2pk
l o g 2 log_2 log2约等于 l n ln ln,熵公式等于 E n t ( D ) = ∑ k = 1 ∣ y ∣ − p k l n p k Ent(D)= {\sum_{k=1}^{|y|}}- p_k{ln^{p_k}} Ent(D)=k=1ypklnpk
− l n x -lnx lnx x = 1 x=1 x=1处泰勒展开约等于 1 − x 1-x 1x,代入上式可以得到:
E n t ( D ) = ∑ k = 1 ∣ y ∣ − p k l n p k = ∑ k = 1 ∣ y ∣ p k ( 1 − p k ) = ∑ k = 1 ∣ y ∣ p k − ∑ k = 1 ∣ y ∣ p k 2 = 1 − ∑ k = 1 ∣ y ∣ p k 2 Ent(D)= {\sum_{k=1}^{|y|}}- p_k{ln^{p_k}} = {\sum_{k=1}^{|y|}} p_k(1-p_k) = {\sum_{k=1}^{|y|}} p_k - {\sum_{k=1}^{|y|}} {p_k}^2 = 1 -{\sum_{k=1}^{|y|}} {p_k}^2 Ent(D)=k=1ypklnpk=k=1ypk(1pk)=k=1ypkk=1ypk2=1k=1ypk2
到此,可以得到,基尼指数与熵值公式是非常接近的。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值