由决策树算法可知, 其关键点在于如何选择最优划分属性, 一般而言, 随着划分过程不断进行, 我们希望形成纯度高的分支节点和叶结点.
信息增益
信息熵可以用来衡量样本集合纯度. 假定 样本集合
D
, 其中第
Ent(D)=−∑k=1γpklog2pk
熵越小, 则样本集合纯度越高, 以信息论的角度看, 也就是信息量越小.
假定离散属性
a
有
信息增益越大, 也就是使用属性 a 划分所获得纯度提升越大, 因此我们可以用信息增益来决定决策树的划分属性. 这就是著名的ID3决策树学习算法(Iterative Dichotomiser 3).
增益率
使用信息增益进行决策树划分, 会偏好可取值数目多的属性, 可能导致决策树泛化能力弱, 为了解决这个问题, 引入了增益率, 其定义如下:
IV(a)=−∑v=1V|Dv||D|log2|Dv||D|
这就是C4.5决策树学习算法.
基尼指数
数据集的纯度也可以用基尼指数来度量:
Gini(D)=∑k=1γ∑r!=kpkpr=1−∑k=1γp2k
则属性 a 划分后的基尼指数为
最优划分属性 a=argmin(Gini_index(D,a)),a∈A
这就是CART决策树算法
这里是一个简单的实现:
https://github.com/volvet/MLInAction/tree/master/DecisionTrees
Reference
- 机器学习 - 周志华 清华大学出版社
- Machine Learning in Action - Peter Harington
3450

被折叠的 条评论
为什么被折叠?



