id3 学习总结

机器学习算法的Python实现 (2):ID3决策树 本文数据参照 机器学习-周志华 一书中的决策树一章。可作为此章课后习题3的答案 代码则参照《机器学习实战》一书的内容,并做了一些修改。 本文使用的Python库包括 numpypandasmathoperatormatplotlib 本文所用的数据如下:                   Idx 色泽 根蒂 敲声 纹理 脐部 触感 阅读详情

id3 学习总结

 

一、数据特征

DataSet

 

ID   Attribute1  Attribute2  .. AttributeN    Class

1    value_11   value_12   ... value_1N    class1

2    value_21   value_22   ... value_2N    class2

.    ...        ...        ... ...         ...

 

M   value_M1  value_M2...   value_MN    classM

 

注:

[1]   每个数据项有N个属性

[2]   每个属性有多个属性值

[3]   每个数据项归属于1个类

 

二、属性值熵的计算

Entropy

 

Entropy(S) = S -p(I) log2 p(I)

 

注:

S    ——是数据集合

p(I) ——是S属于某一个类的概率

log2       ——以2为底求对数

 

例:

[1]如果S是14个数据集合,其中有9个属于类Yes和5个属于类No:

Entropy(S) = - (9/14) Log2 (9/14) - (5/14) Log2 (5/14) = 0.940

[2]如果S的所有元素属于同一类则entropy为0 (该数据集是被完全分类的).Entropy的范围是从0(完全确定)到1 (全部随机).

 

三、信息增益的计算

Gain

Gain(S, A) 是数据集S在属性A上的信息增益定义为:

Gain(S, A) = Entropy(S) - S((|Sv| / |S|) * Entropy(Sv))

注:

S对属性A的所有可能值求和

Sv = S中的属性A值为v的子数据集Sv

|Sv| = Sv中的元素个数

|S| = S中的元素个数

四、递归计算生成决策树

[1] 对于S计算Entropy(S),对S的每个属性A计算其Gain(S,A);

[2] 取gain(S,A)最大值时的A属性为决策树跟节点p0;

[3] 对A的每个属性值 v1,v2,… ,vN,分别将S划分为S1,S2,… ,SN,其中v1,v2,… ,vN为p0点的分支的路径取值;

[4]   对S1,S2,…,SN重复[1],[2],[3]步骤,依次获得次决策点p1,p2,…pN,直到得到叶子节点,叶子节点上为类的值。

五、规则生成

[0]   DataSet例子

Day

Outlook

Temperature

Humidity

Wind

Play ball

D1

Sunny

Hot

High

Weak

No

D2

Sunny

Hot

High

Strong

No

D3

Overcast

Hot

High

Weak

Yes

D4

Rain

Mild

High

Weak

Yes

D5

Rain

Cool

Normal

Weak

Yes

D6

Rain

Cool

Normal

Strong

No

D7

Overcast

Cool

Normal

Strong

Yes

D8

Sunny

Mild

High

Weak

No

D9

Sunny

Cool

Normal

Weak

Yes

D10

Rain

Mild

Normal

Weak

Yes

D11

Sunny

Mild

Normal

Strong

Yes

D12

Overcast

Mild

High

Strong

Yes

D13

Overcast

Hot

Normal

Weak

Yes

D14

Rain

Mild

High

Strong

No

 

Gain(S,Wind)=Entropy(S)-(8/14)*Entropy(Sweak)-(6/14)*Entropy(Sstrong)

= 0.940 - (8/14)*0.811 - (6/14)*1.00

= 0.048

Entropy(S) = - (9/14) Log2 (9/14) - (5/14) Log2 (5/14) = 0.940

Entropy(Sweak) = - (6/8)*log2(6/8) - (2/8)*log2(2/8) = 0.811

Entropy(Sstrong) = - (3/6)*log2(3/6) - (3/6)*log2(3/6) = 1.00

 

[1]   决策树形象表示:叶子节点为归属类,非叶子节点为某一个属性。

[2]   规则表达式

       If Attribute[i] = value[j] AND …THEN Class = class[x]

       Attribute[i]为Attribute1到AttributeN

       Value[j]为v1到vN

       Class[x]为class1到classN

如上图可表示为:

IF outlook = sunny AND humidity = high THEN playball = no

IF outlook = rain AND humidity = high THEN playball = no

IF outlook = rain AND wind = strong THEN playball = yes

IF outlook = overcast THEN playball = yes

IF outlook = rain AND wind = weak THEN playball = yes

 

 

我的程序运行结果:

IF Outlook = [Sunny] IF Humidity = [High]  THEN  IsPlay = No

Humidity = [Normal]  THEN  IsPlay = Yes

IF Outlook = [Overcast]  THEN  IsPlay = Yes

IF Outlook = [Rain] IF Wind = [Strong]  THEN  IsPlay = No

Wind = [Weak]  THEN  IsPlay = Yes

Press any key to continue

【机器学习】机器学习之决策树(基于ID3、CART挑选西瓜) 目录 一、决策树介绍 1. 基本流程 2. 选择划分因素 (1)信息熵(information entropy) (2)信息增益 (information gain) (3)增益率(gain ratio) (4)基尼指数(Gini index) 二、实现基于信息增益准则(ID3)的决策树 1. 数据样本处理 2. 代码实现 (1)建立决策树 (2)绘制决策树 3. 结果分析 三、使用Sklearn库实现决策树 1. 基于信息增益准则( I D 3 ID3 ID3或 C 阅读详情

相关推荐

机器学习(三)决策树算法ID3的实现

上一篇机器学习的博客我详细说了机器学习中决策树算法的原理,这篇博客我就以一个小例子来说明机器学习中决策树算法的实现。用Python实现机器学习中的决策树算法需要用到机器学习的库,sklearn,我的博客有详细讲解怎么安装机器学习中用到的sklearn库,如果我们安装的可以照着这篇博客去安装----Python2.7中安装sklearn。         补充和总结一下上一篇博客决策树中的算法

Sweet Baby,甜宝 2028

决策树——ID3算法

前言 我们在使用数据挖掘的时候,完成数据的“清洗”等一系列繁琐的步骤,就可以对数据进一步地进行“挖掘”——对数据进行分类的建立、预测、聚类分析等等的操作。在分类和预测的过程中,有一系列的算法得以脱颖而出——“回归分析”、“决策树”、“人工神经网络”等等 那么今天我就来介绍一下”决策树“——ID3算法 一、ID3算法 ID3作为一种经典的决策树算法,是基于信息熵来选择最佳的测试属性,其选择了当前样本集中具有最大信息增益值的属性作为测试属性。 样本集的划分则依据了测试属性的取值进行,测试属性有多少种取值就能划

weixin_46245411的博客 3万+

机器学习 | 决策树ID3算法

ID3是Quinlan于1979年提出的,是机器学习中一种广为人知的一个算法,它的提出开创了决策树算法的先河,而且是国际上最早最有影响的决策树方法 首先找出最有判断力的特征,把数据分成多个子集,每个子集又选择最有判断力的特征进行划分,一直进行到所有的子集包含同一类型的数据为止,最后得到一棵决策树。 一、ID3算法的基本步骤 1)创建一个节点。如果样本都在同一类,则算法停止,把该节点改成树叶节点,并用该类标记。 2)否则,选择一个能够最好的将训练集分类的属性,该属性作为该节点的测试属性。 3)对测试

6808

ID3算法原理详解

本文介绍了ID3算法详细原理,并举例说明。

blinkyou001的博客 8980

ID3算法的python实现

ID3算法是一种贪心算法,用来构造决策树。ID3算法起源于概念学习系统(CLS),以信息熵的下降速度为选取测试属性的标准,即在每个节点选取还尚未被用来划分的具有最高信息增益的属性作为划分标准,然后继续这个过程,直到生成的决策树能完美分类训练样例。

【搭建实战】全国天气预报看板搭建

不仅如此,码匠还一站式提供了企业内部系统常用的租户管理、细粒度的权限控制、审计日志等功能,让您快速搭建后台应用的同时,也为您的企业信息安全保驾护航。是一款国内研发的开发者友好的低代码平台,您无需了解React/Vue等框架的开发、部署等各种细节,就可以快速打通前后端,连接RESTAPI、MySQL、MongoDB等多种数据源,然后通过一套开箱即用的组件,轻松搭建功能完善的数据看板、数据洞察、Admin管理后台等多种应用。天气预报对我们的各项活动有很大的帮助,可以让我们合理安排自己的出行等活动。...

weixin_39545889的博客 426

数据科学新手的完全指南:ID3决策树算法解析

决策树是机器学习中一个强大且广泛应用的算法,而ID3决策树算法是其早期版本之一。ID3决策树算法由Ross Quinlan于1986年首次提出,它是决策树算法家族的早期成员。它的发展对于机器学习和数据挖掘领域产生了深远的影响。本文将对“决策树”--ID3算法进行详细的解读ID3算法通过选择最佳的特征来进行数据集的划分。选择特征的标准是信息增益(Information Gain),这个指标用来衡量在选择特征后数据集的不确定性减少程度。

AI_dataloads的博客 2364

基于Lumerical FDTD的光栅耦合器宽带特性仿真与实验验证

本文详细介绍了基于Lumerical FDTD软件对光栅耦合器进行宽带特性仿真的完整流程。通过复现一个针对1310nm波段优化的经典光栅耦合器案例,文章从结构建模、光源设置、监视器布置到仿真运行与结果分析,逐步解析了如何准确模拟其耦合效率与带宽特性,并将仿真结果与实验数据进行对比验证,为硅光芯片的设计与优化提供了实用指导。

weixin_29294597的博客 511

Python:ID3算法的基本原理及代码复现

文章目录引言ID3算法的基本原理信息增益的算法ID3算法的流程ID3算法的代码复现数据集的准备:1.Mnist数据集的格式转换算法模块的实现2.加载数据3.寻找对应样本数目最大的标签4.经验熵的计算5.条件经验熵的计算6. 计算信息增益最大的特征7.子数据集和对应标签集的创建8.递归创建决策树9.预测标签10.模型评估11.主函数的构造测试运行 引言 本文主要介绍了ID3算法进行决策树生成的算法原理,并对该算法流程进行了代码复现,其中算法的部分参考自李航-《统计学习方法》一书,代码的注释详细,供读者学习参考

Spuer_Tiger 7401

FPS游戏自动枪械识别+压枪(以PUBG为例)

使用Python3.9作为开发环境,实现一个通用的FPS游戏自动检测枪械配件+压枪宏的软件开发思路

weixin_37827742的博客 3万+

【SpringBoot香樟转转】debugDay01

在学黑马程序员的苍穹外卖项目,刚开始学,想用maven编译一下代码,结果报错,找不到符号。本着先理解原则,看着能找到这个变量呀。

m0_72696598的博客 1737

ID3算法思想以及实现

数据挖掘中的分类主要包括基于决策树的分类、基于规则的分类、基于神经网络的分类、基于支持向量机的分类、基于朴素贝叶斯的分类等。

NLP工程化 1万+

YOLOv8改进,YOLOv8添加DCNv4可变性卷积(windows系统成功编译),全网最详细教程

DCNv4通过两项关键增强解决了其前身DCNv3的局限性:1. 移除空间聚合中的softmax归一化,以增强其动态特性和表达能力;2. 优化内存访问以最小化冗余操作,从而加速计算。这些改进使得DCNv4相比DCNv3显著加快了收敛速度,并且处理速度大幅提升,前向传播速度超过三倍。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 6469

机器学习决策树ID3

在机器学习中,决策树是一种预测模型,代表的是一种对象属性与对象值之间的一种映射关系...

caechen的博客 3247

Open3D——直通滤波(python详细过程版)【2025最新版】

python就一个字:强。博客长期更新,本文最近更新时间为:2025年1月11日。

点云侠的博客 7514

Aurix TC3xx系列MCU ResourceM模块配置(多核资源分配)

为减轻主核的负载率或者平衡各个核的资源分配,通常需要把一些MCU内部资源分配到从核上,在EB tresos工具中,通过ResourceM模块实现多核资源分配。

m0_38045338的博客 1387

决策树ID3的学习与实现

0. 绪论 昨天完成了决策树ID3算法的编码,心情真的很激动呀,虽然是针对具体数据而生的,但是还是很自豪的说。在这个过程中对ID3算法也加深了印象。 决策树学习主要是特征选择(实则是特征属性的排优)和基于ID3算法决策树的生成,对于决策树的剪枝本文并不讨论。 1. 示例数据 2. 预备知识 信息熵:就决策的过程来说,熵是描述一个决策过程的混乱程度,如果选择过程是特定的则熵为0,如果

BlockheadLS的博客 1007

图片风格自动分析模型

对于分类任务,我们可以使用交叉熵损失作为损失函数。同时,我们可以选择随机梯度下降(SGD)或Adam等优化器进行模型优化。# 使用SGD优化器# 或使用Adam优化器在这部分,总结整个项目的过程,包括数据准备、模型构建、训练、优化和评估等。同时,讨论可能的改进方向和未来工作,例如尝试更多的模型结构、优化技巧等。

a871923942的博客 1698

机器学习之决策树(ID3)算法与Python实现

机器学习中,决策树是一个预测模型;他代表的是对象属性与对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶结点则对应从根节点到该叶节点所经历的路径所表示的对象的值。决策树仅有单一输出,若欲有复数输出,可以建立独立的决策树以处理不同输出。 数据挖掘中决策树是一种经常要用到的技术,可以用于分析数据,同样也可以用来作预测。

moxigandashu的博客 2万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

机器学习之决策树ID3

机器学习中,决策树是一个预测模型;代表对象属性和对象值之间的一种映射关系。树中每个节点表示某个对象,而每个分叉表示某个可能的属性,每个叶子节点则对应从根节点到该叶子节点所经历的路径所表示的对象的值。决策树只有单一输出,若想要复数输出,可以建立独立的决策树以处理不同输入。数据挖掘中常用到决策树,可以用于分析数据,也可以用于预测。

Dreamer_Yoru的博客 815

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

机器学习:ID3算法

1  简介   决策树学习是一种逼近离散值目标函数的方法,在这种学习到的函数被表示为一棵决策树。 2 决策树表示   决策树通过把实例从根节点排列到某个叶子结点来分类实例,叶子结点即为实例所属的分类。树上的每一个结点指定了对实例的某个属性的测试,并且该结点的每一个后续分支对应于该属性的一个可能值。 分类实例的方法是从这棵树的根节点开始,测试这个结点指定的属性,然后按照给定实

Hi_Panda 1058

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Python 机器学习入门之ID3决策树算法

开始新的一章,这章主要介绍决策树(decision tree)算法,它是一种常用的分类和回归方法,同时在它的基础上还演化出了随机森林、XgBoost等算法;这篇文章说说最早的决策树算法ID3决策树。百科定义:决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。

weixin_43575792的博客 324

《机器学习》第三章决策树学习 ID3算法 c++实现代码

很久没写含这么多stl的程序了,很故意的用set,map,vector,熟手一下。 也记录一下吧,虽然写得比较渣。 三个文件: 测试数据:data.txt D1 Sunny Hot High Weak No D2 Sunny Hot High Strong No D3 Overcast

Aszxqw 8202

《机器学习实战》ID3算法实现

ShuYunBIGDATA的博客 376

Machine Learning In Action -- ID3决策树学习算法的python实现

decision tree Learning 决策树学习笔记 决策树学习是一种相对比较简单的分类学习方法,但是分类效果较好并且表示直观,主要针对离散型目标,它也等价于用if-then规则表示。 决策树学习在Mitchell的《机器学习》第三章中有详细讲解,也有许多人做了详细的笔记,比如http://www.cnblogs.com/pangxiaodong/archive/2

lemonwyc的专栏 4735
上一篇: id3算法
下一篇: 小白
KevenJava
博客等级 码龄24年 5粉丝 30原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值