1、ID3简介
ID3(Iterative Dichotomiser 3)算法最早是由J. Ross Quinlan于1975年在悉尼大学提出的一种分类预测算法。ID3算法是一种贪心算法,用来构造决策树,每一步选择当前的最优决策,并不是整体可见的最优决策。ID3算法起源于概念学习系统(CLS),以信息熵的下降速度为选取测试属性的标准,即在每个节点选取还尚未被用来划分的具有最高信息增益的属性作为划分标准,然后继续这个过程,直到生成的决策树能完美分类训练样例。该算法是以信息论为基础,以信息熵和信息增益度为衡量标准,从而实现对数据的归纳分类。
2、ID3算法核心
ID3算法是一种使用信息增益概念的贪心算法。算法步骤如下:
①在所有数据上依次计算每一个属性数据决策后带来的信息增益,选择信息增益最大的一个属性作为决策树的根节点,也就是说选择信息熵最小的属性来做根节点。
②将数据第一步选择的属性进行分类,在每一个分类后的子集数据上创建依次计算剩余属性的信息增益,选择信息增益最大的属性作为根节点的叶子节点。
③重复执行第②步,直到所有的子集只包含一个元素或者所有的属性都已经成为决策树的某个节点。
需要指出的是,ID3算法是一种贪心算法,每一步都选择当前子集上最大信息增益对应的属性作为节点。ID3对所使用的样本数据是有一定要求的,第一无法处理连续性数据,需要离散型数据,除非连续数据被分解为模糊范畴的类别数据;第二需要足够的样本量,因为需要足够的数据来区分每种数据特征类别存在过度耦合,从而更好的消除特殊情况的数据影响;第三,使用信息增益作为节点的分裂标准,实际上并不合理,会倾向于选择取值较多的属性。
3、ID3的优缺点
优点:
- 理论清晰,方法简单;
- 假设空间包含所有的决策树,搜索空间完整;
- 不受噪声影响;
- 可以训练缺少属性值的实例。
缺点:
- ID3只考虑分类型的特征,没有考虑连续特征,大大限制了ID3的用途;
- ID3算法对于缺失值没有进行考虑;
- 没有考虑过拟合的问题;
- ID3算法在选择根节点和各内部节点中的分支属性时,采用信息增益作为评价标准。信息增益的缺点是倾向于选择取值较多的属性,在有些情况下这类属性可能不会提供太多有价值的信息;
- 划分过程会由于子集规模过小而造成统计特征不充分而停止。
(本文部分内容来自https://mp.weixin.qq.com/s/W5zWo_bMllxNa__AtyPPiQ)