【python和机器学习入门2】决策树2——决策树构建

本文深入探讨了使用Python构建决策树的过程,包括决策树的构建原理、结构、关键代码实现、完整代码展示及使用决策树进行预测分类。通过ID3算法,以贷款demo为例,展示了如何选择最佳特征进行数据集划分,构建出决策树结构,并讨论了决策树的存储和其优缺点。
摘要由CSDN通过智能技术生成

参考博客:决策树实战篇之为自己配个隐形眼镜 (po主Jack-Cui,《——大部分内容转载自

                 

参考书籍:《机器学习实战》——第三章

目录

一 构建决策树

1.1 决策树构建原理

1.2 决策树结构

1.3决策树构建关键代码

1.4 构建完整代码

1.5 使用构建的决策树进行预测分类

二 决策树的存储


《——决策树概念子模块等见前篇

一 构建决策树

依旧是用贷款demo,数据如下

本章使用ID3算法进行决策树划分,每次划分消耗一个特征属性。

1.1 决策树构建原理

决策树构建工作原理:从原始数据集开始,基于最好的属性值划分数据集,由于特征值可能多于两个,因此可能存在大于两个分支的数据集划分。第一次划分之后,数据集被向下传递到树的分支的下一个结点。在这个结点上,我们可以再次划分数据。因此我们可以采用递归的原则处理数据集。

 使用ID3算法的核心是在决策树各个结点上对应信息增益准则选择特征,递归地构建决策树。具体方法是:从根结点(root node)开始,对结点计算所有可能的特征的信息增益,选择信息增益最大的特征作为结点的特征,由该特征的不同取值建立子节点;再对子结点递归地调用以上方法,构建决策树;直到所有特征的信息增益均很小或没有特征可以选择为止,最后得到一个决策树。ID3相当于用极大似然法进行概率模型的选择。

递归创建决策树时,递归有两个终止条件:第一个停止条件是所有的类标签完全相同,则直接返回该类标签;第二个停止条件是使用完了所有特征,仍然不能将数据划分仅包含唯一类别的分组,即决策树构建失败,特征不够用。此时说明数据纬度不够,由于第二个停止条件无法简单地返回唯一的类标签,通常采用多数表决即挑选出现数量最多的类别作为返回值。

根据该构建原理对贷款demo进行数据集划分,从上篇我们知道根的信息增益最大是“是否有房”特征属性,根据这个属性可以划分2个数据集D1、D2如下,且D1数据集中的贷款类别全为“是”,即全为同一类,该数据集结点即可停止划分。

1.2 决策树结构

贷款demo的信息增益计算过程如下,前4行为第一次划分数据集,信息增益最高为第3个,取为根节点,删除该特征后再次计算,得到第2个特征信息增益最高,取为第二个划分特征。

可以知道第一个划分特征为“有自己的房子”,第二个划分特征为“有工作” ,且划分之后子集正好都是同一类,即终止节点。故决策树构建完成如下:

 

使用字典存储决策树结构,如

{'有自己的房子': {0: {'有工作': {0: 'no', 1: 'yes'}}, 1: 'yes'}}

字典关键字(key)‘有自己的房子’是第一个划分数据集的特征名称,它的值(value)是另一个字典。value要么是类标签,要么是另一个字典。如果值是类标签则该子节点是叶子节点;如果值是另一个字典,则子节点是一个判读节点,这种格式不断重复构成了整棵树。

1.3决策树构建关键代码

(这部分代码解析来自po主Jack-Cui,写的很详细 我就扣过来了)

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值