机器学习笔记 - 决策树最优划分属性选择

AI助手已提取文章相关产品:

由决策树算法可知, 其关键点在于如何选择最优划分属性, 一般而言, 随着划分过程不断进行, 我们希望形成纯度高的分支节点和叶结点.

信息增益

信息熵可以用来衡量样本集合纯度. 假定 样本集合 D , 其中第k类样本所占比例为 pk(k=1,2,...,γ) , 则D的熵为

Ent(D)=k=1γpklog2pk

熵越小, 则样本集合纯度越高, 以信息论的角度看, 也就是信息量越小.

假定离散属性 a V个可能的取值 {a1,a2,...,av} , 使用 a 来对样本集合D进行划分, 产生 V 个分支节点. 其中第v个分支节点包含 D 中所有取值为av的样本, 记为 Dv . 我们可以根据上面的公式计算 Dv 的信息熵, 于是可以计算用属性 a 划分的信息增益, 计算方法为:

Gain(D,a)=Ent(D)v=1V|Dv||D|Ent(Dv)

信息增益越大, 也就是使用属性 a 划分所获得纯度提升越大, 因此我们可以用信息增益来决定决策树的划分属性. 这就是著名的ID3决策树学习算法(Iterative Dichotomiser 3).

增益率

使用信息增益进行决策树划分, 会偏好可取值数目多的属性, 可能导致决策树泛化能力弱, 为了解决这个问题, 引入了增益率, 其定义如下:

Gain_ratio(D,a)=Gain(D,a)IV(a)

IV(a)=v=1V|Dv||D|log2|Dv||D|

这就是C4.5决策树学习算法.

基尼指数

数据集的纯度也可以用基尼指数来度量:

Gini(D)=k=1γr!=kpkpr=1k=1γp2k

则属性 a 划分后的基尼指数为
Gini_index(D,a)=v=1VGini(Dv)

最优划分属性 a=argmin(Gini_index(D,a)),aA
这就是CART决策树算法

这里是一个简单的实现:
https://github.com/volvet/MLInAction/tree/master/DecisionTrees

Reference

  1. 机器学习 - 周志华 清华大学出版社
  2. Machine Learning in Action - Peter Harington

您可能感兴趣的与本文相关内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值