决策树进阶(一)划分准则-公式篇

1、信息熵

H ( x ) = − ∑ i = 1 n p ( x i ) l o g 2 p ( x i ) H(x) = -\sum_{i=1}^n p(x_i)log_2p(x_i) H(x)=i=1np(xi)log2p(xi) ---------注意负号
x i 表 示 x 取 值 为 x i x_i表示x取值为x_i xixxi
p ( x i ) 表 示 值 为 x i 出 现 的 概 率 p(x_i)表示值为x_i出现的概率 p(xi)xi

概率越大,或者越小,信息熵的值是减小的。
概率 = 0.5 的时候,最不确定,信息熵是最大的,所以 l o g 2 log_2 log2

2、条件熵

H ( Y ∣ X ) = ∑ x ∈ X p ( x ) H ( Y ∣ X = x ) H(Y|X) = \sum_{x∈X} p(x)H(Y|X=x) H(YX)=xXp(x)H(YX=x)
对熵加一个条件

3、信息增益(ID3)

即为熵和条件熵的差

{ H ( D ) = − ∑ d ∈ D p ( d ) l o g 2 p ( d ) , 数据集的熵 H ( D ∣ A ) = ∑ d ∈ D p ( d ) H ( A ∣ D = d ) , 数据集在A特征上的条件熵 g a i n ( D , A ) = H ( D ) - H ( D ∣ A ) , 信息增益 \begin{cases} H(D) = -\sum_{d∈D} p(d)log_2p(d),& \text {数据集的熵} \\H(D|A) = \sum_{d∈D} p(d)H(A|D=d) ,& \text {数据集在A特征上的条件熵}\\ gain(D,A)=H(D)-H(D|A) ,& \text {信息增益} \end{cases} H(D)=dDp(d)log2p(d),H(DA)=dDp(d)H(AD=d),gain(D,A)=H(D)H(DA),数据集的熵数据集在A特征上的条件熵信息增益
D为整个数据集,A为某个特征,d为类别

对一个确定的数据集来说,H(D)是确定的。
H(D|A)在A特征一定的情况下,随机变量的不确定性越小,信息增益越大,这个特征的表现就越好。
所以,信息增益就是在得知特征A一定的情况下,D不确定性的减少程度。
简单来说,就是加入了A特征后,可分辨性增加了多少!
eg.是否买过头绳 D ( d ∈ { 1 , 0 } ) D(d ∈\{1,0\}) D(d{1,0})这个问题,知道了A性别后,会变得很容易分类了。

缺点:
1.信息增益考察的是特征对整个系统的贡献,没有到具体的类别上,所以一般只能用来做全局的特征选择,而没法针对单个类别做特征选择。
2.只能处理离散型特征值
3.算法天生偏向选择分支多的属性,容易导致overfitting。

4、信息增益比(C4.5)

信息增益如果遇到特征选取的值过多(身份证、日期等),导致分支过多,容易过拟合。
解决办法:对树分支过多的情况进行惩罚。
除以A特征的熵正好抵消了特征变量(身份证、日期等)的复杂程度,可以减小过拟合的可能性。

g a i n r a t e ( D , A ) = g a i n ( D , A ) H A ( D ) gain_{rate}(D,A) = \frac{gain(D,A)}{H_A(D)} gainrate(D,A)=HA(D)gain(D,A)

5、基尼系数(CART)

类似信息熵,可以衡量数据的不纯度,信息越不确定,值越大。

G i n i ( D ) = 1 − ∑ i = 1 n p i 2 Gini(D)=1−∑_{i=1}^np^2_i Gini(D)=1i=1npi2

Gini系数就是信息熵在x=1的地方一阶泰勒展开得到 f ( x ) = 1 − x f(x)=1-x f(x)=1x,也是等价无穷小。
g i n i = ∑ k p k l o g ( p k ) = ∑ k p k ( 1 − p k ) = ∑ k p k − ∑ k p k 2 = 1 − ∑ k p k 2 gini=\sum_k p_kl og(p_k) = \sum_k p_k (1 - p_k) = \sum_k p_k - \sum_kp_k^2 = 1-\sum_kp_k^2 gini=kpklog(pk)=kpk(1pk)=kpkkpk2=1kpk2

与信息增益类似,我们可以计算如下表达式:
Δ G i n i ( X ) = G i n i ( D ) − G i n i X ( D ) ΔGini(X)=Gini(D)−Gini_X(D) ΔGini(X)=Gini(D)GiniX(D)
加入特征X以后,数据不纯度减小的程度。
明显,在做特征选择的时候,我们可以取ΔGini(X)最大的那个

借鉴:
1、https://www.jianshu.com/p/268c4095dbdc
2、https://blog.csdn.net/bitcarmanlee/article/details/51488204

你可能感兴趣的:(机器学习-理论)