《机器学习实战》-决策树算法心得

本文介绍了决策树的基本原理,通过实例展示了如何构建决策树,并详细解释了香农熵在选择属性顺序中的作用,以及ID3算法的决策过程。文章最后提及了决策树对离散属性的处理以及Python实现中的字典应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

决策树的思路是这样的,假设有两个属性A,B,分别有两个值0,1,当A=0,B=0时这是个鸡,当A=0,B=1时是鸭,当A=1,B=0时是猫,当A=1,B=1时是狗。现在给了一个未知类别的物体,其属性是A=1,B=1,那么按照先判断A,后判断B的过程,得到如下决策流程:

在这里插入图片描述

很简单的一种分类方法吧。

实际上也是这样,最简单的决策树,就是从第一个属性的值开始进行分组,根据值的不同分成了不同子树,接着下一层用第二个属性的值分组,再下一层用第三个,以此类推,直到:

这个属性值分出来的子树中只有一个类别了

将所有的属性都已经用完了,即树到了第N层(属性个数N)

满足上述两个条件之一则为叶子结点,返回。

特别要说明的是条件②,因为再这种情况下可能叶子结点里的数据并不是同一类的,此时选择数量较多的那个类就行了。

这个超简单的决策树就构建完成了,接下来如果输入一个未知类别的物体,那么走完这个决策树就会返回该算法预测的类别。

接下来我们看香农熵下的决策树(也就是书中的决策树)。

上面讲的简单决策树可以看到,选取哪个属性优先分组是我们默认的,从第一个依次类推。

而实际上选择属性的顺序非常重要,它关系到我们建立的这棵决策树的层数(层数约高耗时越长),那么我们应该按照什么顺序来选择分组的属性呢?

有一种想法是希望我们每次分组之后,最好都出现像上面简图那样的情况,尽量一个类别的数据集中在一起或者两个类别较均匀的分布,而避免出现分组后很多类别都在一棵子树上,这样会增加我们接下来对子树的分类量。

香农熵就是用来评估这个的,它衡量了信息的复杂程度,其定义为

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值