机器学习算法——决策树ID3算法介绍以及Java实现

本文介绍了决策树算法的基本概念,并详细讲解了ID3算法的原理、计算步骤和一个实例,通过实例展示了如何根据天气、温度、湿度和风速属性来决定活动是否进行。最后,给出了ID3算法的Java代码实现。

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

一、 决策树算法

决策树:是一种用于对实例进行分类的树形结构,可以是二叉树或非二叉树,由节点(node)和有向边(directed edge)组成。其中每个非叶子节点表示一个特征属性,叶子节点代表类别属性,它的值由根节点到叶子节点这一分支的属性值确定。使用决策树进行分类的过程,就是从根节点出发,训练数据的分支走向,直到得到叶子节点的值停止计算,这时即可输出类别。

决策树算法是从数据的属性(或者特征)出发,以属性作为基础,划分不同的类。实现决策树的算法有很多种,有ID3、C4.5和CART等算法。下面我们介绍ID3算法。

二、ID3算法

ID3算法是由Quinlan首先提出的,该算法是以信息论为基础,以信息熵和信息增益为衡量标准,从而实现对数据的归纳分类。

算法原理:设
这里写图片描述
为训练样本,对于每个样本有m个属性,用A,B,C,……来表示每一个属性。样本类别为
这里写图片描述
算法计算步骤如下:
首先,构造分类决策树。
(1)计算训练样本D的信息熵,即
这里写图片描述
Pi 表示第i个类别个数占训练样本总数的比例。
(2)分别计算每个属性的条件熵,例如计算属性A相对于D的期望信息,即:
这里写图片描述
其中,
这里写图片描述
表示属性A将D划分为v个子集。
这里写图片描述
表示第j个子集的样本数比上样本总数。
(3)计算属性A的信息增益,即
这里写图片描述
同理,重复第二步、第三步,计算出其他属性的信息增益,直至所有属性计算完成。选择信息增益最大的属性为根节点,对样本集D进行第一次分裂;然后对余下的属性重复上述的步骤,选择作为第二层节点的属性,直到找到叶子节点为止。此时,就构造出一颗决策分类树。

决策树构造完成后,就可以对待分类的样本进行分类,得到类别。

三、ID3算法实例讲解

图中数据为训练样本,现在预测E= {天气=晴,温度=适中,湿度=正常,风速=弱} 的情况下活动是取消还是进行。属性为天气、温度、湿度、风速,类别为取消和进行。
这里写图片描述

样本D的信息熵,
这里写图片描述
在天气为晴时有5种情况,发现活动取消有3种,进行有2种,计算现在的条件熵:
这里写图片描述
天气为阴时有4种情况,活动进行的有4种,则条件熵为:
这里写图片描述
天气为雨时有5种情况,活动取消的有2种,进行的有3种,则条件熵为:
这里写图片描述
由于按照天气属性不同取值划分时,天气为晴占整个情况的5/14,天气为阴占整个情况的4/14,天气为雨占整个情况的5/14,则按照天气属性不同取值划分时的带权平均值熵为:
这里写图片描述
算出的结果约为0.693.

则此时的信息增益Gain(活动,天气)= H(活动) - H(活动|天气) = 0.94- 0.693 = 0.246

同理我们可以计算出按照温度属性不同取值划分后的信息增益:

Gain(活动,温度)= H(活动) - H(活动|温度) = 0.94- 0.911 = 0.029

按照湿度属性不同取值划分后的信息增益:

Gain(活动,湿度)= H(活动) - H(活动|湿度) = 0.94- 0.789 = 0.151

按照风速属性不同取值划分后的信息增益:

Gain(活动,风速)= H(活动) - H(活动|风速) = 0.94- 0.892 = 0.048

决策树的构造就是要选择当前信息增益最大的属性来作为当前决策树的节点。因此我们选择天气属性来做为决策树根节点,这时天气属性有3取值可能:晴,阴,雨,我们发现当天气为阴时,活动全为进行因此这件事情就可以确定了,而天气为晴或雨时,活动中有进行的也有取消的,事件还无法确定,这时就需要在剩下的属性中递归再次计算活动熵和信息增益,选择信息增益最大的属性来作为下一个节点,直到整个事件能够确定下来。

最后得到的决策树如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值