news 2026/6/5 16:41:49

9.吴恩达机器学习——决策树

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
9.吴恩达机器学习——决策树

一、决策树模型

决策树(Decision Tree)是一种经典的监督学习算法,主要用于分类和回归任务。其核心功能是通过递归地将数据集划分为更纯净的子集,来构建一个树状模型,从而实现预测和决策。

这里有一个数据集,通过耳朵,脸部,是否有胡须来判断是否是猫

决策树模型如下

其他决策树模型

二、决策树的构建步骤

  1. 确定根节点使用特征
  2. 专注于左子树,确定左子树的起始节点
  3. 直到分出全是猫的集合之后,左子树结束迭代
  4. 接着同上构建右子树

三、决策树决策点构建方法

1.如何选择节点特征来进行分割

关键:选择的决策点特征可以将集合以最大纯度划分

2.何时停止分割(达到叶节点)

  • 直到节点中数据全为同一类
  • 限定树的最大深度
  • 进一步分割的信息增益小于某个阈值
  • 节点例子数量低于某个阈值

四、纯度的测量——熵

熵函数为H(p1),上图坐标图横轴为p1,纵轴为熵值,这里p1我们设置为集合中的猫所占整体的比例,以下是熵函数的表达

五、选择分割:信息增益

信息增益衡量的是在决策树中通过分割获得的熵减少量

我们对集合做不同的决策分割,计算左右子树的熵值,进一步对其利用固定公式求加权平均,再利用根节点本身的熵值减去所得到的值,就是熵减量,也就是信息增益

p表示左分支中正样本比例,w表示左分支样本占全部样本比例

六、独热编码

对于一个特征有多个取值情况,我们需要对这个特征的不同取值进行编码,1代表符合特征,0代表不符合,这样就能对“耳形”特征进行编码,这就是独热编码

对于连续值特征,其本质也是通过计算信息增益来判断分割效果,取连续值特征的某一个值来进行计算即可,其余步骤同离散值特征的使用

七、回归树

  • 将决策树应用与回归问题中,在构建过程中,我们不在尝试减少熵值,反而,我们尝试减少所选择特征分割的到的集合中的连续值的方差,在这里我们要计算加权平均差
  • 我们选择加权平均差减少最多的为最佳分割特征

八、决策树的集成

1.集成决策树

单个的决策树在解决实际问题时,对数据十分敏感,当其中一个数据发生改变时,可能会引起特征分裂发生改变。为了解决这个问题,我们需要构建多个决策树

如图所示构建的三颗决策树,得到不同结果,让后让树进行投票,其中判断是猫的数目更多,所以最终结果就是猫

构建多个决策树会使得你的决策树算法更加鲁棒

2.有放回采样

我们将构建多个与原始训练集略有不同的随机训练集,如下:

  • 将10只猫狗放入样本袋中
  • 随机抽取作为一个训练集中的训练样本
  • 有放回采样可以保证我们样本的随机性,以及“一致性”

3.随机森林树

  • 首先构建一个B个决策树的集成树(里面每个决策树的数据集来自于有放回抽样得到的数据集)
  • 对上面的集成树进行修改,尝试在每个节点随机化特征选择得到随机森林:例如,当到了某一个点有n个特征可以选择进行分裂时,我们可以从n个特征集合里面随机选择k(n很大时,k一般取根号n)个特征作为我们的分裂备选,然后选择这k个特征中信息增益最高的作为分裂特征。这样就可以得到随机森林算法。算法的优势是:在进行抽样时,就已经模拟了一部分的数据变化,意味着数据集的一些小的改动并不会太大影响整个随机森林算法的结果。

九、XGBoost

XGBoost 本质上是梯度提升框架的工程优化版本,其基本思想是序贯集成多个弱学习器(通常为CART回归树),每个新树通过拟合前序模型的负梯度(残差)来逐步降低整体损失。

类似于刚才的集成树的做法,只是在训练第二个决策树时,这里采用的训练数据集更有可能选择之前的决策树分类错误的样本(而不是1/m),即将更多的注意力放在尚未处理好的例子子集上,并使用下一个决策树来尝试处理这些问题。

XGBoost就是这样一个算法,它内置了正则化以防止过拟合。下面是代码实现XGBoost的示例:

十、决策树VS神经网络

1、决策树和集成树

  • 在表格(结构化)数据上表现良好
  • 不建议用于非结构化数据(图像、音频、文本)
  • 速度快
  • 小型决策树可能具有人类可解释性

2、神经网络

  • 在所有类型的数据上表现良好,包括表格(结构化)数据和非结构化数据
  • 可能比决策树慢
  • 可与迁移学习一起使用
  • 当构建多个模型协同工作的系统时,可能更容易将多个神经网络组合在一起
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/5 8:01:54

【课程设计/毕业设计】基于SpringBoot的宠物之家管理系统基于springboot的宠物店管理系统【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/6/5 0:46:24

COMSOL 10kHz 正弦电压双介质氩空腔放电模型探索

[COMSOL交流10kHz正弦电压双介质氩空腔放电模型],分别为介电常数3的聚碳酸酯和介电常数5.2的环氧树脂,与IEEE文献基本一致,可以拿去参考。 最近在研究 COMSOL 模拟领域,捣鼓了一个挺有意思的模型——10kHz …

作者头像 李华
网站建设 2026/6/5 0:54:50

APK取证

Apk分析题APP包名?答:com.example.readeveryday打开我们的虚拟安卓机adb shell dumpsys window | findstr mCurrentFocus(定位当前 APP 包名和活动界面)该APK具备下列哪些危险权限(多选)?A读取短信 B.读取通讯录 C.读取…

作者头像 李华
网站建设 2026/5/26 17:36:08

Python和django的购物商城系统_602b1cs6

目录Python与Django构建购物商城系统的核心要点关于博主开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!Python与Django构建购物商城系统的核心要点 技术栈选择 Python搭配Django框架是开发…

作者头像 李华
网站建设 2026/6/5 1:48:13

1.1 什么是Whisper? | 《Whisper语音识别实战专栏》

引言 语音识别技术是人工智能领域的重要分支,它能够将人类的语音转换为文本,为各种应用提供基础支持。随着深度学习技术的发展,语音识别的准确率和性能不断提升,应用场景也越来越广泛。 2022年9月,OpenAI发布了一款名…

作者头像 李华