目录
学习完机器学习实战的决策树,简单的做个笔记。文中部分描述属于个人消化后的理解,仅供参考。
所有代码和数据可以访问 我的 github
如果这篇文章对你有一点小小的帮助,请给个关注喔~我会非常开心的~
0. 前言
决策树(Decision Tree)的执行流程很好理解,如下图所示(图源:西瓜书),在树上的每一个结点进行判断,选择分支,直到走到叶子结点,得出分类:
- 优点:计算复杂度不高、输出结果易于理解、对缺失值不敏感
- 缺点:可能会产生过拟合
- 适用数据类型:数值型和标称型(数值型数据需要离散化)
决策树构建中,目标就是找到当前哪个特征在划分数据时起到决定性作用,划分数据有多种办法,如信息增益(ID3)、信息增益率(C4.5)、基尼系数(CART),本篇主要介绍信息增益(ID3算法)。
1. 信息增益(ID3)
首先,介绍香农熵(entropy),熵定义为信息的期望值,熵越高,说明信息的混乱程度越高:
其中, 表示数据集,
表示数据集中的每一个类别,
表示这个属于类别的数据占所有数据的比例。
信息增益(information gain)定义为原始的熵减去当前的熵,增益越大,说明当前熵越小,说明数据混乱程度越小:
其中, 表示按照此特征划分的子集数量,
表示第
个子集,
表示子集的信息熵,