决策树算法中的几个概念

熵(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)\),即spa

\[H(p) = - \sum\limits^n_{i=1}p_ilog\,p_i \tag{3} \]

熵是用来度量随机变量的不肯定性的,而且熵的数值越大,表明随机变量的不肯定性就越大.能够证实,在随机变量能够取的值的个数为n的时候,随机变量的熵的取值范围为orm

\[0 \leq H(p) \leq log\,n \tag{4} \]

条件熵(condition entropy)

假设有随机变量\(X\)\(Y\)\(X\)可取的值有n个。\(Y\)可取的值有m个,那么它们的联合几率分布写做ci

\[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).it

信息增益(information gain)

信息增益用来度量已知特征\(X\)的信息而使得类标签\(Y\)的不肯定性减少的程度.具体地,特征\(A\)对训练数据集\(D\)的信息增益\(g(D, A)\)定义为训练数据集\(D\)的经验熵\(H(D)\)与在给定特征\(A\)条件下训练数据集\(D\)的经验条件熵\(H(D|A)\)之差,写做为io

\[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)\)计算以下form

\[H(D) = -\sum\limits^k_{k=1}\frac{|C_k|}{|D|}log_2\frac{|C_k|}{|D|} \tag{8} \]

特征\(A\)对数据集\(D\)的经验条件熵为class

\[\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算法基于基尼指数进行特征选择.

相关文章
相关标签/搜索