机器学习-决策树最优类别属性选择的三个方法


本文所用符号:

  • \(D\):所有样本,如《西瓜书》中所有的西瓜样本
  • \(a\):用来划分样本的类别属性,a有V个可取值{\(a^1,a^2 \dots , a^V\)},如若用a表示“色泽”,则a的取值是{\(a^1=青绿,a^2=乌黑,a^3=浅白\)},此时\(V=3\)
  • \(D^v\):用a对样本D进行划分后属于\(a^v\)的样本子集
  • \(|y|\)\(y\)属性可取个数,下文中用y表示模型最终划分的结果集,如西瓜书中的{好瓜,坏瓜}

信息增益

使用信息熵\[Ent(D)=-\sum_{k=1}^Vp_klog_2p_k\]度量样本合集纯度,\(Ent(D)\)越大,纯度越低。用a对样本分类后,信息增益
\[Gain(D,a)=Ent(D)-\sum_{v=1}^V \frac{|D^v|}{|D|}Ent(D^v)\]越大说明使用a作为划分类别对样本划分后纯度提高越多,其中\(\sum_{v=1}^V \frac{|D^v|}{|D|}Ent(D^v)\)表示划分后的每个子集的信息熵的加权和。 选择使信息增益最大化的划分类别如a对样本进行第一次划分后,形成v个子样本:{\(D^1,D^2 \cdots,D^v\)},再对每个子样本用相同的方法继续划分即可,如对\(D^1\)划分:选择除a之外的类别属性b和c,分别计算\(Gain(D^1,b)\)\(Gain(D^1,c)\),最后选择使结果值较大的类别属性进行划分。使用信息增益法划分子集的算法叫做ID3决策树算法。

增益率

信息增益法对可取值较多的类别划分属性有所偏好,可能影响模型的泛化能力,C4.5决策树算法中使用“增益率”选择最优划分属性。增益率定义:\[gain_ratio(D,a)=\frac{Gain(D,a)}{IV(a)}\],其中\[IV(a)=-\sum_{v=1}^V\frac{|D^v|}{|D|}log_2\frac{|D^v|}{|D|}\],为什么分母是这样子?希望有时间能看下《信息论》,但是可以粗浅地看出,a的取值可能性越多,\(IV(a)\)越大(假设a只有一个取值,那么IV(a)为0;取两个值且各占一半,IV(a)为 \(-log_2\frac{1}{2}\);取三个值且各占三分之一,IV(a)为\(-log_2\frac{1}{3}\)),正好起到调停作用。

增益率对可取值数量较小的类别属性有所偏好,实际计算中,先选出信息增益高于平均值的若干个类别属性,然后再从中选择增益率较高的属性作为分类属性

基尼指数

CART决策树算法使用基尼指数,其定义为:\[Gini(D)=\sum_{k=1}^{|y|}\sum_{k' \neq k} p_kp_{k'}=1-\sum_{k=1}^{|y|}p_k^2\],基尼指数表示从D中随机取出两个样本其标记不一致的概率,此概率越低,说明纯度越高。

类别属性a的基尼指数定义为\[Gini_index(D,a)=\sum_{v=1}^V\frac{|D^v|}{|D|}Gini(D^v)\],选择基尼指数最小的属性作为划分属性。


参考:

  • 《机器学习》周志华著
  • 《机器学习工程师》网易云课堂出品

猜你喜欢

转载自www.cnblogs.com/zzy0471/p/9497285.html