决策树之构造生成

本文详细介绍了决策树的构造过程,包括ID3、C4.5、CART算法,以及信息熵、信息增益、信息增益率和基尼系数等关键概念。通过示例数据展示了如何选择最佳分割属性,最终形成一个完整的决策树。在构建过程中,讨论了决策树可能存在的重复属性选择问题及其对决策效率的影响。

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

决策树之构造生成


参考说明

    这篇文档展示一个完整的决策树的生成过程,希望对学习过程中的我们有所帮助:

示例数据表格

    文章所使用的数据集如下,来源于《数据分析实战45讲》17讲中

天气 温度 湿度 刮风 是否打篮球
小雨
小雨
晴天
阴天

相关概念阐述

决策树

    以上面的表格数据为例,比如我们考虑要不要去打篮球,先看天气是不是阴天,是阴天的话,外面刮风没,没刮风我们就去,刮风就不去。决策树就是把上面我们判断背后的逻辑整理成一个结构图,也就是一个树状结构。

ID3、C4.5、CART

    在决策树构造中有三个著名算法:ID3、C4.5、CART,ID3算法计算的是信息增益,C4.5计算使用的是增益率、CART计算使用的是基尼系数,下面简单介绍下其算法,这里也不要求完全看懂,扫一眼有个印象就行,在后面的例子中有计算示例,回过头结合看应该就懂了。

信息熵

    在信息论中,随机离散事件的出现的概率存在不确定性,为了衡量这种信息的不确定性,信息学之父香农引入了信息熵的概念,并给出了计算信息熵的数学公式。

Entopy(t)=-Σp(i|t)log2p(i|t)
信息增益

    信息增益指的是划分可以带来纯度的提高,信息熵的下降。它的计算公式是父亲节点的信息熵减去所有子节点的信息熵。信息增益的公式可以表示为:

Gain(D,a)=Entropy(D)- Σ|Di|/|D|Entropy(Di)
信息增益率

    信息增益率 = 信息增益 / 属性熵。属性熵,就是每种属性的信息熵,比如天气的属性熵的计算如下,天气有晴阴雨,各占3/7,2/7,2/7:

H(天气)= -(3/7 * log2(3/7) + 2/7 * log2(2/7) + 2/7 * log2(2/7)) 
基尼系数

    基尼系数在经济学中用来衡量一个国家收入差距的常用指标.当基尼指数大于0.4的时候,说明财富差异悬殊.基尼系数在0.2-0.4之间说明分配合理,财富差距不大.扩展阅读下基尼系数

    基尼系数本身反应了样本的不确定度.当基尼系数越小的时候,说明样本之间的差异性小,不确定程度低.

    CART算法在构造分类树的时候,会选择基尼系数最小的属性作为属性的划分.

    基尼系数的计算公式如下:

Gini = 1 – Σ (Pi)2 for i=1 to number of classes

举例说明

    下面是一个完整的决策树的构造生成过程,已完整开头所给的数据为例

根节点的选择

    在上面的列表中有四个属性:天气,温度,湿度,刮风.需要先计算出这四个属性的信息增益、信息增益率、基尼系数

    数据集中有7条数据,3个打篮球,4个不打篮球,不打篮球的概率为4/7,打篮球的概率为3/7,则根据信息熵的计算公式可以得到根节点的信息熵为:

Ent(D)=-(4/7 * log2(4/7) + 3/7 * log2(3/7))=0.985
天气

    其数据表格如下:

天气状态 打篮球数量 不打篮球数量 总数
1 2 3
1 1 2
小雨 1 1 2
信息增益计算

    如果将天气作为属性划分,分别会有三个叶节点:晴天、阴天、小雨,其中晴天2个不打篮球,1个打篮球;阴天1个打篮球,1个不打篮球;小雨1个打篮球,1个不打篮球,其对应相应的信息熵如下:

D(晴天)=-(1/3 * log2(1/3) + 2/3 * log2(2/3)) = 0.981
D(阴天)=-(1/2 * log2(1/2) + 1/2 * log2(1/2)) = 1.0
D(雨天)=-(1/2 * log2(1/2) + 1/2 * log2(1/2)) = 1.0

    在数据集中晴天有3条数据,阴天有2条数据,雨天有2条数据,对应的概率为3/7、2/7、2/7,那么作为子节点的归一化信息熵为:

3/7 * 0.918 + 2/7 * 1.0 * 2/7 * 1.0 = 0.965

    其信息增益为:

Gain(天气)=0.985 - 0.965 = 0.020
信息增益率计算

    天气有三个选择,晴天有3条数据,阴天有2条数据,雨天有2条数据,对应的概

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值