决策树之特征选择

特征选择(节点划分)

一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高。

符号声明

假设当前样本集合D中第k类样本所占的比例为p_k\:(k=1,2,...,|\mathcal Y|)),离散属性aV个可能的取值\{a^1,a^2,...,a^V\},若使用a来对样本集D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为a^v的样本,记作D^v

样本集合D的信息熵定义为
Ent(D)=-\sum_{k=1}^\mathcal{|Y|} p_k\log_2{p_k}

1. 信息增益

Gain(D,a) = Ent(D)-\sum_{v=1}^{V} \frac{|D^v|}{|D|}Ent(D^v)\tag{1}

实际上,信息增益准则对可取数目较多的属性有所偏好。

2. 增益率

C4.5决策树算法选择增益率(gain ratio)来选择最优划分属性。

Gain\_ratio(D, a)=\frac{Gain(D,a)}{IV(a)} \tag{2} \\ s.t. \quad IV(a)=-\sum_{v=1}^{V}\frac{|D^v|}{|D|}\log_2\frac{|D^v|}{|D|}

IV(a)称作属性a的固有值(intrinsic value)。

需注意的是,增益率准则对可取值较少的属性有所偏好,因此,C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

3. 基尼指数

\begin{aligned} \text{数据集$D$的纯度:} \\ Gini(D) &= \sum_{k=1}^{\mathcal{|Y|}}\sum_{k' \neq k}p_k p_{k'}\\ &= 1-\sum_{k=1}^{\mathcal{|Y|}}p_k^{2} \end{aligned}

直观来讲,Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此,Gini(D)越小,则数据集D的纯度越高。

属性a的基尼指数:

Gini\_index(D,a) = \sum_{v=1}^{V} \frac{|D^v|}{|D|}Gini(D^v) \tag{3}

于是,我们在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最优划分属性,即:
a_* = \underset{a\in A}{\arg \min}\: Gini\_index(D,a)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容