机器学习-决策树(ID3算法及详细计算推导过程)

决策树是一种基于树结构进行决策的机器学习算法 ,以下是关于它的详细介绍:

1.基本原理

  • 决策树通过一系列的条件判断对样本进行分类或预测数值。它从根节点开始,根据不同的属性值逐步将样本划分到不同的分支,直到到达叶节点,每个叶节点代表一个类别或数值。
  • 本质是通过条件判断对样本分类,每个内部节点是一个属性上的测试,分支是测试输出,叶节点是类别或值,从根节点到叶节点的路径对应一条分类规则。

2.主要组成部分

  • 节点:包括根节点、内部节点和叶节点。根节点是决策树的起始点,内部节点表示在某个属性上的测试,叶节点则给出最终的分类结果或数值预测。
  • 分支:连接各个节点,代表根据节点测试结果的不同走向,即不同的决策路径

3.决策树举例

图1是一个简单的用来对鸟类进行分类的决策树。在该图中,根节点包含各种鸟类;叶节点是所能识别的各种鸟的名称;中间节点是鸟的一些属性;边是鸟的某一属性的属性值;从根节点到叶节点的每一条路径都描述了一种鸟,它包括该种鸟的一些属性及相应的属性值。

决策树还可以表示为规则的形式。上图的决策树可表示为如下规则集:

  • IF 鸟类会飞 AND 是家养的 THEN 可能是和平鸽
  • IF 鸟类会飞 AND 不是家养的 THEN 可能是信天翁
  • IF 鸟类不会飞 AND 会游泳 THEN 可能是企鹅
  • IF 鸟类不会飞 AND 不会游泳 THEN 可能是鸵鸟

决策树学习过程实际上是一个构造决策树的过程。当学习完成后,就可以利用这棵决策树对未知事物进行分类。

4.重要概念

4.1信息熵

信息熵是对信息源整体不确定性的度量。假设S为样本集,S中所有样本的类别有k种,如y1,y2,...,yk,各种类别样本在S上的概率分布分别为P(y1),P(y2),...,P(yk),则S的信息熵可定义为:

其中,概率P(yj)(j=1,2,...,k),实际上为yj的样本在S中所站的比例;对数可以是以各种数为底的对数,在ID3算法中,我们取以2为底的对数。E(S)的值越小,S的不确定性越小,即其确定性越高。

4.2信息增益

信息增益(information gain)是对两个信息量之间的差的度量。其讨论涉及到样本集S中样本的结构。对S中的每一个样本,除其类别外,还有其条件属性,或简称为属性。若假设S中的样本有m个属性,其属性集为X={X1,X2,...,Xm},且每个属性均有r种不同的取值,则我们可以根据属性的不同取值将样本集S划分成r个不同的子集S1, S2, ... , Sro。此时,可得到由属性x;的不同取值对样本集S进行划分后的加权信息熵

其中,t为条件属性x;的属性值;St为x ;= t时的样本子集;E(St)为样本子集St信息熵;IS|和|St分别为样本集S和样本子集St的大小,即样本个数。有了信息熵和加权信息熵,就可以计算信息增益。所谓信息增益就是指E(S)和E(S,x1)之间的差,即

可见,信息增益所描述的是信息的确定性,其值越大,信息的确定性越高。后面会会给出例题,看例题就明白了。

5.ID3算法

ID3算法的学习过程是一个以整个样本集为根节点,以信息增益最大为原则,选择条件属性进行扩展,逐步构造出决策树的过程。若假设S={s1,s2,...sn}为整个样本集,X={x1,x2,...,xm}为全体属性集,Y={y1,y2,...yk}为样本类别。则ID3算法描述如下:

(1) 初始化样本集S={s1,s2,...sn}和属性集X={x1,x2,...,xm},生成仅含根节点(S, X)的初始决策树。

(2) 如果节点样本集中的所有样本全都属于同一类别,则将该节点标记为叶节点,并标出该叶节点的类别。算法结束。 否则执行下一步。

(3) 如果属性集为空;或者样本集中的所有样本在属性集上都取相同值,即所有样本都具有相同的属性值,则同样将该节点标记为叶节点,并根据各个类别的样本数量,按照少数服从多数的原则,将该叶节点的类别标记为样本数最多的那个类别。算法结束。否则执行下一步。

(4) 计算每个属性的信息增益,并选出信息增益最大的属性对当前决策树进行扩展。

(5) 对选定属性的每一个属性值,重复执行如下操作,直止所有属性值全部处理完为止: ① 为每一个属性值生成一个分支;并将样本集中与该分支有关的所有样本放到一起,形成该新生分支节点的样本子集; ② 若样本子集为空,则将此新生分支节点标记为叶节点,其节点类别为原样本集中最多的类别; ③ 否则,若样本子集中的所有样本均属于同一类别,则将该节点标记为叶节点,并标出该叶节点的类别。

(6) 从属性集中删除所选定的属性,得到新的属性集。

(7) 转第(3)步。

5.1 ID3算法举例

  • info:信息量
  • E:信息熵(信息量的加权求和)
  • gain:信息增益

用上图来计算构建决策树

5.1.1计算总的信息量

1.在上表中先看序号,总共有9个P,5个N,则我们可以计算出总的信息量为

2.我们要在天气、气温、湿度和风中选择一个做为根节点

(1)天气的信息增益

先看天气,天气为时,有2个P,三个N,则信息量

天气为时,有三个P,两个N,则信息量

天气为多云时,有三个P,0个N,则信息熵

天气各种情况加权求和,即天气的信息熵为:

故基于天气的信息增益为:

(2)气温的信息增益

气温-热:

气温-适中:

气温-冷:

各个气温情况加权求和:

基于气温的信息增益为:

同理我们可以计算湿度和风的信息增益

3.天气的信息增益最大,所以我们选择天气作为根节点

4.天气作为根节点,则他的子树我们就用相同的方法即可计算出来

相关推荐
爱coding的橙子几秒前
每日算法刷题Day2 5.10:leetcode数组1道题3种解法,用时40min
算法·leetcode
引量AI6 分钟前
TikTok矩阵运营干货:从0到1打造爆款矩阵
人工智能·矩阵·自动化·tiktok矩阵·海外社媒
Hi-Dison18 分钟前
神经网络极简入门技术分享
人工智能·深度学习·神经网络
奋斗者1号25 分钟前
机器学习之决策树模型:从基础概念到条件类型详解
人工智能·决策树·机器学习
LinkTime_Cloud43 分钟前
谷歌引入 AI 反诈系统:利用语言模型分析潜在恶意网站
人工智能·语言模型·自然语言处理
程序媛小盐1 小时前
贪心算法:最小生成树
算法·贪心算法·图论
张小九991 小时前
PyTorch的dataloader制作自定义数据集
人工智能·pytorch·python
Panesle1 小时前
分布式异步强化学习框架训练32B大模型:INTELLECT-2
人工智能·分布式·深度学习·算法·大模型
zstar-_1 小时前
FreeTex v0.2.0:功能升级/支持Mac
人工智能·python·macos·llm
苏生要努力1 小时前
第九届御网杯网络安全大赛初赛WP
linux·python·网络安全