大数据-199 数据挖掘 机器学习理论 - 决策树 模型 决策与条件 香农熵计算

点一下关注吧!!!非常感谢!!持续更新!!!

目前已经更新到了:

  • Hadoop(已更完)
  • HDFS(已更完)
  • MapReduce(已更完)
  • Hive(已更完)
  • Flume(已更完)
  • Sqoop(已更完)
  • Zookeeper(已更完)
  • HBase(已更完)
  • Redis (已更完)
  • Kafka(已更完)
  • Spark(已更完)
  • Flink(已更完)
  • ClickHouse(已更完)
  • Kudu(已更完)
  • Druid(已更完)
  • Kylin(已更完)
  • Elasticsearch(已更完)
  • DataX(已更完)
  • Tez(已更完)
  • 数据挖掘(正在更新…)

章节内容

上节我们完成了如下的内容:

  • scikit-learn 归一化
  • scikit-learn 距离的惩罚

在这里插入图片描述

决策树模型

  • 树模型是有监督学习类算法中应用广泛的一类模型,同时可应用与分类问题和回归问题,其中用于解决分类问题的树模型常被称为分类树,而用于解决回归类问题的树模型被称为回归树。
  • 树模型通过递归式切割的方法来寻找最佳分类标准,进而最终形成规则。
  • 其算法原理虽然简单,但模型本身使用面极广,且在分类问题和回归问题上均有良好的表现,外加使用简单,无需人为进行过多变量调整和数据预处理,同时生成规则清晰,模型本身可解释性非常强,因此在各个行业均有广泛应用。
  • 决策树(Decision Tree)是一种实现分治策略的层次数据结构,它是一种有效的非参数学习方法,并可以用于分类和回归,我们主要讨论分类的决策树。
  • 分类决策树模型表示一种基于特征对实例进行分类的属性结构(包括二叉树和多叉树)。

决策树由节点(Node)和有向边(Directed edge)组成,树中包含三种节点:

  • 根节点(Root Node):包含样本全集,没有入边,但有零条或多条多边。
  • 内部节点(Internal Node):对应于属性测试条件,恰有一条入边,和两条或多条出边。
  • 叶节点(Leaf Node)或终节点(Terminal Node):对应于决策结果,恰有一条入边,但没有出边。

在这里插入图片描述

决策树基本流程

从根节点到每个叶子节点的路径对应了一个判定测试序列,其基本流程遵循了简单且直观的“分而治之”策略。
由此,局部区域通过少数几步递归分裂确定,每个决策节点实现一个具有离散输出的属性测试函数,标记分支。
假设给定训练集输入:
在这里插入图片描述
在每个节点应用一个测试,并根据测试的输出确定一个分支,这一过程从跟节点开始,并递归的重复,直至到达一个叶子节点,这是,该 leaf 的值形成输出。

决策与条件概率分布

决策树可以表示为给定决策节点下类的条件概率分布,这一条件概率分布定义在特征空间的一个划分上。每个将空间划分为较小区域,在从根节点沿一条路径向下时,这些较小的区域进一步划分,并在每个区域定义一个类的概率分布就构成了一个条件概率分布。
假设 X 是表示特征的随机变量,Y 是表示类的随机变量,则条件概率分布可表示P(Y | X),X 取值于给定划分条件下的区域集合,Y 取值于类的集合。各叶节点(区域)上的条件概率往往会偏向某一个类,即属于某一类的概率较大。

决策树在分类时会将该节点的实例强行分到条件概率大的那一类去。

在这里插入图片描述
左图表示了特征空间的一个划分,假定现在只有 W10 和 W20 两个决策点,特征空间被决策点沿轴划分,并且相继划分相互正交,每个小矩形表示一个区域,特征空间上的区域构成了集合,X 取值为区域的集合。
我们在这里只假设两类,即 Y 的取值为 方块、圆圈。当某个区域 C 的条件概率分布满足 P(Y=圆圈|X=C)> 0.5 时,则认为这个区域属于圆圈类,即落在这个区域的实例都被视为该类。
右图为对应于概率分布的决策树,如果输入维是 Xn 是离散的,取 N 个可能的值之一,则该决策节点检查 Xn 的值,并取相应分支,实现一个 n 路划分。因此,如果决策节点具有离散分支,数值输入应当离散化。

在这里插入图片描述

学习算法

决策树学习本质上从训练数据集中归纳出一组分类规则,也称为“树归纳”。

  • 对于给定的训练数据集,存在许多对它无错编码的树。而为了简单起见,我们感兴趣的是从中选出“最小”的树,这里的树的大小用树的节点数和决策节点的复杂性度量。
  • 从另一个角度看,决策树学习是由训练数据集估计条件概率模型,基于特征空间划分的类的条件概率模型有无数个,我们选择的模型应该是不仅能对训练数据有很好的拟合,而且对未知数据也有很好的预测。
  • 树的学习算法从包含全部训练数据开始,每一步都是最佳划分。依赖于所选择的属性是值属性还是离散属性,每次将数据划分为两个或者 N 个子集,然后使用对应的子集递归进行划分,直到所有训练数据子集被基本正确分类,或者没有合适的特征为止。
  • 此时,创建一个树叶节点并标记它,这就生成了一颗决策树。

综上,决策树学习算法包括特征选择、决策树的生成与决策树的剪枝。
由于决策树表示一个条件概率的分布,所以深浅不同的决策树对应着不同的复杂度的概率模型,其中决策树的生成只考虑局部最优,相对的,决策树的剪枝则考虑全局最优。

香农熵的计算

决策树学习的关键在如何选择最优划分属性,一般而言,随着划分过程不断进行,我们希望决策树的分支节点所包含的样本尽可能属于同一类别,即节点纯度(purity)越来越高。在分类树中,划分的优劣用不纯度度量(impurity-measure)定量分析。

在这里插入图片描述
在信息论与概率统计中,熵是表示随机变量不确定性的度量。这里我们使用的熵,也叫做香农熵,这个名字来源信息论之父克劳德·香农。

为了计算熵,我们需要计算所有类别所有可能值包含的信息期望值(数学期望),即上述公式。对于二分类问题,如果 p1=1 而 p2 = 0,则出油的实例都属于 Ci 类。
如果 p1 = p2 = 0.5,熵为 1。

在这里插入图片描述
但是,熵并非是唯一可能的度量。
在这里插入图片描述
这些都可以推广到 K > 2 类,并且给定损失函数,误分类误差可以推广到最小风险。
下图显示了二元分类问题不纯性度量值的比较,p 表示属于其中一个类的记录所占的比例。从图中可以看出,三种方法都在类分布均衡时(即当 p=0.5 时)达到最大值,而当所有记录都属于同一个类时(p=1 或 p=0)达到最小值。

在这里插入图片描述
这里给出三种不纯性度量方法的计算实例:

在这里插入图片描述
从上面的例子及图中可以看出,不同的不纯性度量是一致的。根据计算,节点 N1 具有最低的不纯性度量值,然后依次是 N2、N3。虽然结果是一致的,但是作为测试条件的属性选择仍然因不纯性度量的选择而异。

香农熵的代码实现

row_data = {'是否陪伴' :[0,0,0,1,1],'是否玩游戏':[1,1,0,1,1],'渣男' :['是','是','不是','不是','不是']
}dataSet = pd.DataFrame(row_data)
dataSet

执行结果如下图所示:
在这里插入图片描述
通过代码实现一下:

def calEnt(dataSet):# 数据集总行数n = dataSet.shape[0]# 标签的所有类别iset = dataSet.iloc[:,-1].value_counts() # 每一类标签所占比p = iset/n# 计算信息熵ent = (-p*np.log2(p)).sum() return entcalEnt(dataSet)

运行的结果如下图所示:
在这里插入图片描述
熵越高,信息的不纯度就越高,则混合的数据就越多。
也就是说,单从判断的结果来看,如果你从这 5 个人中瞎猜,要准确判断其中一个人是不是“bad boy”是不容易的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/1769.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

ES入门:查询和聚合

安装完ElasticSearch 和 Kibana后我们开始学习 为了方便测试,使用kibana的dev tool来进行学习测试: 测试工具 从索引文档开始 插入 向 Elasticsearch 索引 customer 的 _doc 类型的文档 id 为 1 的文档发送 PUT 请求的例子。 请求体为 JSON 格式&am…

力扣——二叉树的后序遍历(C语言)

1.题目: 给你一棵二叉树的根节点 root ,返回其节点值的后序遍历。 2.原理: 这里的遍历,是要存入到数组中,所以需要建立数组,这里传参有*returnSize,需要求节点个数,可以调用前面Tr…

软件测试学习笔记丨Flask操作数据库-数据库和表的管理

本文转自测试人社区,原文链接:https://ceshiren.com/t/topic/23427 结构分析 Runner是中间件sqlachemy去驱动Runner,根据不同的数据库去驱动不同的中间件 demo # 导入Flask的类 from flask import Flask # 实例化 Flask的类,并且…

一个小程序如何对接多个收款账户?

背景 我又来了,之前对接过网约巴士系统 网约巴士旅游专线平台搭建历程,运营了两年多了。在运营中完善、在完善中学习,一直是不变的真理。有一句话说得好:先做一个垃圾、用起来再说。 今天又需要升级了,需求是&#…

模型 定位地图

系列文章 分享 模型,了解更多👉 模型_思维模型目录。心智导航现实的空间图。 1 定位地图模型的应用 1.1 小玉的职业定位与发展规划 小玉,24岁,市场营销专业本科毕业生,有半年汽车销售实习经历。毕业后,她…

java项目之协力服装厂服装生产管理系统的设计与实现(springboot)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的协力服装厂服装生产管理系统的设计与实现。项目源码以及部署相关请联系风歌,文末附上联系信息 。 项目简介: …

[MySQL#7] CRUD(2) | 更新 | 删除 | 聚合函数 | group by

目录 3. 更新 4. 删除 截断表 日志的作用 5. (实验) 插入查询结果 6. 聚合函数 7. 分组查询 接着上篇文章[MySQL#6] 表的CRUD (1) | Create | Retrieve(查) | where继续讲解~ 3. 更新 语法: UPDATE table_name SET column expr [, column expr ...][WHE…

RT-Thread PIN设备 UART设备

引脚简介 芯片上的引脚一般分为四类:电源、时钟、控制与I/O。 I/O口在使用模式上又分为General Purpose Input Output(通用输入/输出),简称GPIO,与功能复用I/O(如SPI/I2C/UART等)。 大多数MCU…

【element ui系列】分享几种实现el-table表格单选的方法

在实际的开发中,经常会用到从表格中选择一条记录的情况,虽然官方给出的例子,但是给人感觉看起来不明显,于是,在此基础上做了改进。接下来,介绍两种常见的实现方法: 1、采用复选框(checkbox)实现…

FastAPI中如果async def和def 路由的区别

在python的整体生态中,虽然已经有很多库支持了异步调用,如可以使用httpx或者aiohttp代替requests库发起http请求,使用asyncio.sleep 代替time.sleep, 但是依然还有很多优秀的第三方库是不支持异步调用也没有可代替的库&#xff0c…

架构师备考-非关系型数据库

基础理论 CAP 理论 C(Consistency)一致性。一致性是指更新操作成功并返回客户端完成后,所有的节点在同一时间的数据完全一致,与ACID 的 C 完全不同。A (Availability)可用性。可用性是指服务一直可用&…

奥云学院应邀参加“第二届中国县域经济投资高峰论坛”

论坛聚焦战略,县域经济迎来新机遇 10月28日,由中国投资协会主办的第二届中国县域经济投资高峰论坛在北京盛大召开。本次论坛以“产业资本助力县域经济高质量发展”为主题,汇聚政府、企业、金融机构和学术专家等多方资源,集中探讨…

飞牛NAS docker compose环境下自建远程桌面服务:rustdesk

🛩️前言 由于国内向日葵、todesk等应用的日渐模糊,恰巧我们已经实现了ipv6的内网穿透,而且在国内ipv6的延迟极低,加上本次介绍的开源远程桌面项目Rustdesk,简直是绝配。 这个项目比较简单,话不多说&…

算法:查找

算法 1. 顺序查找和折半查找1.1 顺序查找1.2 折半查找1.3 索引顺序查找 2. 树表查找2.1 查找2.2 插入 3. 哈希表及哈希查找3.1 哈希造表3.2 处理冲突开放定址法链地址法 3.3 哈希查找 查找是非数值数据处理中一种基本运算,查找运算的效率与查找表所采用的数据结构和…

Istio基本概念及部署

一、Istio架构及组件 Istio服务网格在逻辑上分为数据平面和控制平面。 控制平面:使用全新的部署模式:Istiod,这个组件负责处理Sidecar注入,证书颁发,配置管理等功能,替代原有组件,降低复杂度&…

OpenCV视觉分析之目标跟踪(8)目标跟踪函数CamShift()使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 找到物体的中心、大小和方向。 CamShift(Continuously Adaptive Mean Shift)是 OpenCV 中的一种目标跟踪算法&#xff0…

gradlew命令打包报错:malformed input off : 50, length : 1

Execution failed for task :app:mapǧ��Ѫսƪ_officialOfficialReleaseSourceSetPaths. > Could not resolve all files for configuration :app:ǧ��Ѫսƪ_officialOfficialReleaseRuntimeClasspath. > Failed to trans…

[云] 大数据分析栈(Big Data Analytics Stack)+ Apache Hadoop分布式文件系统(HDFS)+Apache Spark

任务概述 本次作业旨在帮助你理解大数据分析栈(Big Data Analytics Stack)的工作原理,并通过实际操作加深认识。你将搭建Apache Hadoop分布式文件系统(HDFS)作为底层文件系统,并将Apache Spark作为执行引擎…

ESP8266 自定义固件烧录-Tcpsocket固件

一、固件介绍 固件为自定义开发的一个适配物联网项目的开源固件,支持网页配网、支持网页tcpsocket服务器配置、支持串口波特率设置。 方便、快捷、稳定! 二、烧录说明 固件及工具打包下载地址: https://download.csdn.net/download/flyai…

新能源汽车空调压缩机:科技驱动的冷暖核心

一、新能源汽车空调系统概述 新能源汽车空调系统在车辆中起着至关重要的作用,它直接影响着驾乘人员的舒适度。新能源汽车空调系统主要由制冷系统、加热系统、送风系统、操纵控制系统和空气净化系统等组成。 制冷系统通常由电动压缩机、冷凝器、压力传感器、电子膨…