吴恩达deeplearning.ai:决策树模型

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏

文章目录

  • 猫分类例子
  • 学习过程


学习算法非常强大的原因之一,是其应用了决策树和树集合,尽管决策树取得了巨大的成功,但是在学术界却没有太多的研究,但它其实是你工具箱中非常有用的工具。让我们用猫分类示例作为例子。

猫分类例子

你打算做一个分类器,从而判断图片中的动物是否是猫。
以下列举出了十种动物,每个动物按照三个特征:耳朵形状,脸的形状,是否有胡须被标记为特征,然后分别有十个标签,以上的这些全部都是二元分布,即是或不是这两种答案:
在这里插入图片描述
什么是决策树?
以下是一颗决策树,让我来进行一些名词解释:最上面的节点叫做根节点;所有的那些椭圆形的节点叫做决策节点,因为每个节点决定了你会往左或者是往右走;而最底部的节点被称为叶节点 。
在这里插入图片描述
当然决策树的种类并非只有一种,有些会在训练集和cv集上表现地比较好,有些效果就差些。决策树学习算法的工作大致原理是,希望在训练集上找到一个工作良好的树,然后能将其泛化到cv和test set上。
在这里插入图片描述
那么决策树是如何构建起来的呢,让我们看看它的学习过程。

学习过程

我们先用比较抽象的方法来考虑这些问题。让你能有个大致的概念,在之后的博客在进行具体细节了解。
第一步,需要确定根节点是什么。在以下的例子中,我们将根节点选为Ear Shape,这样,我们就将其中的五种动物分到了左边。
在这里插入图片描述
第二步,由于我们还没能将猫和狗完全区分开来,因此我们需要一个二级节点,用新的特征继续去区分动物。这里选择的是脸的形状。
在这里插入图片描述
这样,猫和狗就被区分开来了,从而可以直接划定叶节点。
在这里插入图片描述
在右边的这个子树,我们进行同样的操作。
在这里插入图片描述
这样就构建好了决策树。
在以上的构建过程中,我们可以发现,我们需要做以下几个关键决定:

  1. 选择哪个节点作为特征节点,从而可以最大化提高纯度。例如,如果有DNA这个特征那就最好了,直接百分百区分。但很少能有这种好事。在以后的博客中,我们将提到如何最小化杂质。 在这里插入图片描述
  2. 第二个你需要考虑的是,什么时候停止分裂?当然,当你遇到上例这种100%正确的可以停止分裂。此外的情况是,当分裂一个节点会导致你的决策树超过你设定的最大深度,就停止。一般来说,根节点的深度为0,往后每下一层,深度加一,这个也叫做跳数(hops)。保持深度不要太大是为了防止你的树过于臃肿,从而导致过拟合的发生。另一种可能是,分裂到该阶段,纯度达到了你设定的阈值,就是性能到这里就够了。最后一种可能是,当分裂到这个阶段,例子过少,也可以停止。

相信你和我的感觉一样,怎么决策树要考虑的情况这么多,没关系,我们在之后的博客之中慢慢了解这些内容。
为了给读者你造成不必要的麻烦,博主的所有视频都没开仅粉丝可见,如果想要阅读我的其他博客,可以点个小小的关注哦。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【机器学习】进阶学习:详细解析Sklearn中的MinMaxScaler---原理、应用、源码与注意事项

【机器学习】进阶学习:详细解析Sklearn中的MinMaxScaler—原理、应用、源码与注意事项 这篇文章的质量分达到了97分,虽然满分是100分,但已经相当接近完美了。请您耐心阅读,我相信您一定能从中获得不少宝贵的收获和启发~ &#x1f…

如何配置固定TCP公网地址实现远程访问内网MongoDB数据库

文章目录 前言1. 安装数据库2. 内网穿透2.1 安装cpolar内网穿透2.2 创建隧道映射2.3 测试随机公网地址远程连接 3. 配置固定TCP端口地址3.1 保留一个固定的公网TCP端口地址3.2 配置固定公网TCP端口地址3.3 测试固定地址公网远程访问 前言 MongoDB是一个基于分布式文件存储的数…

用了这些计费方式,代理IP成本减半

“代理IP在现代互联网环境中扮演着重要的角色,它们用于隐藏真实的网络地址,提供更安全和匿名的网络浏览体验。代理IP的成本一直是个令人头疼的问题。” 过去供应商常常采用固定费用的模式,客户无论使用时间长短都需要支付相同的费用&#xff…

[Mac软件]Adobe Illustrator 2024 28.3 intel/M1/M2/M3矢量图制作软件

应用介绍 Adobe Illustrator 是行业标准的矢量图形应用程序,可以为印刷、网络、视频和移动设备创建logos、图标、绘图、排版和插图。数以百万计的设计师和艺术家使用Illustrator CC创作,从网页图标和产品包装到书籍插图和广告牌。 绘制任意大小的标志 拥…

恒丰纸业携手得帆云,构建权威级企业主数据管理平台

本期客户 牡丹江恒丰纸业股份有限公司(简称“恒丰纸业”)是国内首家通过科技部和中科院认定的造纸行业重点高新技术企业,于2001年上海证交所上市交易。 恒丰纸业拥有70年历史底蕴和特种薄页纸研发制造技术,现有生产线21条&#xf…

白酒:勾兑技艺的科学原理与实践技巧

在白酒的酿造过程中,勾兑技艺是至关重要的一环。通过勾兑,酒庄能够将不同类型、不同年份的基酒进行优化组合,以获得理想的口感和品质。许多酒庄在勾兑技艺方面积累了丰富的实践经验,并不断探索科学原理,以提高勾兑技艺…

前端性能优化 | CDN缓存

前言 CDN(Content Delivery Network)是一种分布式的网络架构,通过在全球各地部署节点服务器来快速传输和分发网络内容。CDN的主要目标是提供快速、可靠的内容传输,以提升用户体验。 本文主要从以下方面讲解CDN 什么是CDNCDN的作…

同一交换机下不同网段的终端通信

文章目录 一个有趣的实验 大家都知道不同网段的IP地址要想通信需要通过网关进行路由转发,而一般通过路由器来做默认网关。 一个有趣的实验 一台二层交换机下,连接两个不同网段的PC,实现彼此之间的通信。 一台S3700交换机,两台PC。…

LabelImg:一个简单易用的图像标注工具

目录 LabelImg是什么? 如何使用LabelImg进行图像标注? LabelImg的优势和应用场景 在哪里下载它 随着人工智能技术的不断发展,机器学习和深度学习在图像识别、目标检测等领域中得到了广泛的应用。而要训练一个有效的模型,通常需…

如何提高内存和cpu使用率呢?-Linux类资源

最近公司项目上线时,红蓝线巡检时,部分服务器因配置高但使用率低而需要降级。 为了避免降级,如何增加内存和CPU使用率? 这可以通过脚本来实现。 当前服务器操作系统版本:-7_5。 连接服务器后,登录账号。 …

JVM系列:垃圾回收器(GC)

JVM系列:垃圾回收器(GC) 😀 执行引擎将class文件加载至JVM内存中运行。在运行过程中,需要在内存中动态创建和销毁对象。在传统的C/C语言中,需要手动进行对象销毁以避免内存泄漏。而在Java中,引入…

Leetcode笔记——二叉树的迭代遍历

中序遍历: 定义一个 保存中间量的栈 和一个 结果数组 1. 模板写法 注释版: 背诵版: 前序遍历 1. 中 右 左 的顺序遍历 2. 模板写法,按中 左 右 的顺序遍历 后序遍历 1. 模板写法,按左 右 中 的顺序遍历 注释版&am…

STM32单片机基本原理与应用(十一)

语音识别实验 此实验采用STM32核心板 LD3320模块,通过初始化LD3320并写入待识别关键词,对麦克风说出相应关键词,实现实训平台上的流水灯相应变化的效果。 LD3320 是一颗基于非特定人语音识别 (SI-ASR:Speaker-Indepen…

【深度学习笔记】优化算法——Adam算法

Adam算法 🏷sec_adam 本章我们已经学习了许多有效优化的技术。 在本节讨论之前,我们先详细回顾一下这些技术: 在 :numref:sec_sgd中,我们学习了:随机梯度下降在解决优化问题时比梯度下降更有效。在 :numref:sec_min…

从element-plus 引入ILoadingInstance 出现类型错误

具体报错如下图所示: 1、引入ILoadingInstance 出现错误: 解决问题如下所示: 可能是因为element-plus 多次升级原因,将原来的内部代码多次改下了,原来是loading.type文件,现在变成loading.js,包…

卷积神经网络必备基础

卷积神经网络(Convolutional Neural Network, CNN) 传统的全连接神经网络并不适用于图像处理,这是因为:每个像素点都是一个输入特征,随着层数的增加,参数以指数级增长,而图片的像素点往往非常…

【STM32】HAL库 CubeMX 教程 --- 高级定时器 TIM1 定时

实验目标: 通过CUbeMXHAL,配置TIM1,1s中断一次,闪烁LED。 一、常用型号的TIM时钟频率 1. STM32F103系列: 所有 TIM 的时钟频率都是72MHz;F103C8不带基本定时器,F103RC及以上才带基本定时器。…

2024.3.10 win11系统设置环境变量的方法

2024.3.10 win11系统设置环境变量的方法 win11和其他版本略有区别,以安装maven为例进行操作。 一、鼠标右键点击下拉菜单中选择“个性化” 二、点击个性化中选项后在左侧菜单选择“系统” 三、在右侧系统项目中选择“系统信息” 四、在系统信息中选择“高级系统…

Android将自己写的maven库上传至jitpack(2024靠谱版)

浏览了一堆陈年旧贴,终于实验成功了 第一步 将自建空项目同步至github并保证能正常运行第二步新增一个library类型的modul第三步 在新建的library里面写一些测试用的代码第四步在library的gradle文件增加插件和发布脚本第五步新建一个配置文件第六步 把所有更改push…

面试题:分布式锁用了 Redis 的什么数据结构

在使用 Redis 实现分布式锁时,通常使用 Redis 的字符串(String)。Redis 的字符串是最基本的数据类型,一个键对应一个值,它能够存储任何形式的字符串,包括二进制数据。字符串类型的值最多可以是 512MB。 Re…