决策树算法中的几个概念

熵(entropy)

在信息论和概率统计中,熵用来度量随机变量的不确定性.假设\(X\)是一个取有限值的离散型随机变量,它的概率分布可写为:
\[ P(X=x_i) = p_i, \quad i = 1, 2, ..., n \tag{1} \]
那么随机变量\(X\)的熵就可以定义为:
\[ H(X) = -\sum\limits^n_{i=1}p_ilog\,p_i \tag{2} \]
其中对数函数\(log\)可以以2为底,也可以以\(e\)为底,以2为底计算出的熵的单位是(比特)bit,而以\(e\)为底计算出的熵的单位是纳特(nat).另外需要指出的是,在概率\(p_i=0\)的时候,定义\(0\,log\,0=0\).熵只依赖于随机变量\(X\)的分布,和随机变量具体的取值无关,从而可以把熵写作\(H(p)\),即
\[ H(p) = - \sum\limits^n_{i=1}p_ilog\,p_i \tag{3} \]
熵是用来度量随机变量的不确定性的,并且熵的数值越大,代表随机变量的不确定性就越大.可以证明,在随机变量可以取的值的个数为n的时候,随机变量的熵的取值范围为
\[ 0 \leq H(p) \leq log\,n \tag{4} \]

条件熵(condition entropy)

假设有随机变量\(X\)\(Y\)\(X\)可取的值有n个。\(Y\)可取的值有m个,那么它们的联合概率分布写作
\[ P(X=x_i, Y=y_j) = p_{ij}, \quad i = 1, 2, ..., n;\quad j = 1, 2, ..., m \tag{5} \]
条件熵用来度量在已知给定一个随机变量\(X\)的条件下,另一个随机变量\(Y\)的不确定性.而条件熵的定义是,在给定一个随机变量\(X\)的条件下,另一个随机变量\(Y\)的条件概率分布的熵对\(X\)的数学期望,可写作
\[ \begin{equation} \left\{ \begin{array}{lr} p_i = P(X=x_i), \quad i = 1, 2, ..., n \\ H(Y|X) = \sum\limits^{n}_{i=1}p_iH(Y|X=x_i) \end{array} \right. \end{equation} \tag{6} \]
注:如果熵和条件熵中的概率\(p_i\)由数据估计(例如极大似然估计)得到时,这时候的熵和条件熵就分别称之为经验熵(expirical entropy)经验条件熵(expirical condition entropy).

信息增益(information gain)

信息增益用来度量已知特征\(X\)的信息而使得类标签\(Y\)的不确定性减小的程度.具体地,特征\(A\)对训练数据集\(D\)的信息增益\(g(D, A)\)定义为训练数据集\(D\)的经验熵\(H(D)\)与在给定特征\(A\)条件下训练数据集\(D\)的经验条件熵\(H(D|A)\)之差,写作为
\[ g(D, A) = H(D) - H(D|A) \tag{7} \]
信息增益依赖于特征,信息增益大则说明由于该特征的存在而使得原来数据集分类的不确定性减小的程度越大,从而信息增益大的特征越具有强的分类能力.针对信息增益而选择特征的方法是,考虑数据集的所有特征,对于每一个特征,分别计算其信息增益,选择信息增益最大的那个特征.具体地,假设数据集\(D\)一共有\(|D|\)个样本,一共有\(K\)种类标签,即类标签表示为\(C_k,\,k=1, 2, ..., K\).用\(|C_k|\)表示属于该标签的样本个数.假设特征\(A\)有n个不同取值,那么根据这n个不同取值可以将样本划分成n个不同的子集\(D_1, D_2, ..., D_n\)\(D_i\)表示该样本子集的个数.样本子集\(D_i\)中属于类标签\(C_k\)的集合记作\(D_{ik}\)\(|D_{ik}|\)表示其个数.那么训练数据集\(D\)的经验熵\(H(D)\)计算如下
\[ H(D) = -\sum\limits^k_{k=1}\frac{|C_k|}{|D|}log_2\frac{|C_k|}{|D|} \tag{8} \]
特征\(A\)对数据集\(D\)的经验条件熵为
\[ \begin{align*} H(D|A) &= \sum\limits^n_{i=1}\frac{|D_i|}{|D|}H(D_i) \\ &= -\sum\limits^n_{i=1}\frac{|D_i|}{|D|}\sum\limits^K_{k=1}\frac{|D_{ik}|}{|D_i|}log_2\frac{|D_{ik}|}{|D_i|} \end{align*} \tag{9} \]
则信息增益为
\[ g(D, A) = H(D) - H(D|A) \tag{10} \]
决策树中的ID3算法基于信息增益进行特征选择.

信息增益比(information gain ratio)

信息增益倾向于选择特征取值个数较多的特征,可以用信息增益比进行修正.特征\(A\)对训练数据集\(D\)的信息增益比\(g_R(D, A)\)定义为信息增益\(g(D, A)\)与训练数据集\(D\)关于特征\(A\)的值的熵\(H_A(D)\)之比
\[ \begin{equation} \left\{ \begin{array}{lr} H_A(D) = -\sum\limits^n_{i=1}\frac{|D_i|}{|D|}log_2\frac{|D_i|}{|D|} \\ g_R(D, A) = \frac{g(D, A)}{H_A(D)} \end{array} \right. \end{equation} \tag{11} \]
决策树中的C4.5算法基于信息增益比进行特征选择.

基尼指数(Gini coefficient)

假定样本有\(K\)个类,样本属于第\(k\)类的概率是\(p_k\),则概率分布的基尼指数定义为
\[ Gini(p) = \sum\limits^K_{k=1}p_k(1-p_k) = 1 - \sum\limits^{K}_{k=1}p_k^2 \tag{12} \]
而对于给定的样本集合\(D\),基尼指数记作
\[ Gini(D) = 1 - \sum\limits^K_{k=1}\left(\frac{|C_k|}{|D|}\right)^2 \tag{13} \]
假设训练数据集\(D\)根据特征\(A\)是否取某一可能值a而被分割成\(D_1\)\(D_2\)两部分,则在特征\(A\)条件下,训练数据集\(D\)的基尼指数定义为
\[ Gini(D, A) = \frac{|D_1|}{|D|}Gini(D_1) + \frac{|D_2|}{|D|}Gini(D_2) \tag{14} \]
基尼指数\(Gini(D)\)表示训练数据集\(D\)分类的不确定性,基尼指数\(Gini(D,A)\)表示经过一个特征的某个数值分割之后训练数据集\(D\)分类的不确定性.所以不确定性是和基尼指数的大小成正相关的关系,基尼指数值越大,样本分类的不确定性就越大.
决策树中的CART算法基于基尼指数进行特征选择.

猜你喜欢

转载自www.cnblogs.com/excellent-ship/p/9121983.html