决策树的生成之1:ID3算法

本文介绍了决策树的生成过程,重点讲解了ID3算法的工作原理、递归终止条件以及代码实现。ID3算法通过信息增益选择特征构建决策树,但也存在局限性,如对连续型变量处理、缺失值敏感以及易过拟合等问题。后续内容将探讨这些问题的解决方案及C4.5算法的优化。
摘要由CSDN通过智能技术生成

决策树的生成

从数据集构造决策树算法所需要的子功能模块,其工作原理如下:得到原始数据集,然后基于最好的属性值划分数据集,由于特征值可能多于两个,因此可能存在大于两个分支的数据集划分。第一次划分之后,数据集被向下传递到树的分支的下一个结点。在这个结点上,我们可以再次
划分数据,因此我们可以采用递归的原则处理数据集。
递归结束的条件是:
1) 程序遍历完所有划分数据集的属性;
2)每个分支下的所有实例都具有相同的分类;
3)当前结点包含的样本集合为空时,不能划分。
在第2种情形下,我们把当前结点标记为叶结点,并将其类别设定为该结点所含样本最多的类别,任何到达叶结点的数据必然属于叶结点的分类;在第3种情形下,同样把当前结点标记为叶结点,但将其类别设定为其父结点所含样本最多的类别。

ID3算法

ID3算法原型见于 J.R Quinlan 的博士论文,是基础理论较为完善,使用较为广泛的决策树模型,在此基础上 J.R Quinlan 进行优化后,陆续推出了C4.5 和 C5.0 决策树算法,我们先从ID3开始,再讨论如何从ID3逐渐优化至C4.5。
ID3算法的核心是在决策树各个结点应用信息增益准则选择特征,递归地构建决策树。具体方法是:
1)从根结点开始,对结点计算所有可能的特征的信息增益;
2)选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子结点;
3)再对子结点调用以上方法,构建决策树;
4)直到所有特征的信息增益均很小或没有特征可以选择为止,最后得到一个决策树。

代码实现

#ID3算法
"""
函数功能:基于最⼤信息增益切分数据集,递归构建决策树
参数说明:
dataSet:原始数据集(最后一列是标签)
返回:
myTree:字典形式的树
"""
def createTree(dataSet
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值