COMP 9417 T2_2021 Lesson 8

2023-10-31

贝叶斯: numeric attributes
在这里插入图片描述
在这里插入图片描述


决策树
优点
某种形式的树可能仍然是最流行的data mining
易于理解
易于实施
易于使用
可以分类可以回归,可用于大数据的处理。

例子
在这里插入图片描述
例子
在这里插入图片描述
在N中需要多少个M来分类,N个特征,thresold function
在这里插入图片描述
判断三个var里面T两个

在这里插入图片描述
树真值表的重新表示,将有2^d叶子。通过考虑具有相同Y值的一行或多行之间的共同点,可以实现更紧凑的树

但有些布尔函数可能无法实现紧凑树(例如奇偶函数和多数函数)

一般来说,尽管原则上可以表示任何布尔函数,但搜索和先验限制可能不允许我们在实践中找到正确的树

决策树可能不稳定,因为数据中的细微变化可能会导致生成完全不同的树。通过使用集成中的决策树可以缓解此问题。

在最优性的几个方面,甚至对于简单的概念,学习最优决策树的问题都被认为是NP完全的。因此,实用的决策树学习算法基于启发式算法(例如贪婪算法),其中在每个节点上做出局部最优决策。这样的算法不能保证返回全局最优决策树。可以通过在集成学习器中训练多棵树来缓解这种情况,在该学习器中,特征和样本将通过替换随机抽样。


Top-Down Induction of Decision Trees (TDIDT)

之前写的ID3链接

熵的例子,和概念,很简单链接

在这里插入图片描述
在老师的例子中最后选择A1因为A1的熵比较大,作为节点。


CART分类树算法使用基尼系数选择特征,基尼系数代表了模型的不纯度,基尼系数越小,不纯度越低,特征越好。这和信息增益(率)相反。
之前熵的时候不是谁大谁乱就选谁做节点么,现在Gini就是选小的。

顾名思义,修剪发生在生成一棵树后(并且在没有下文所述的提前停止的情况下),它可能会过拟合。 CART算法将反复将数据划分为越来越小的子集,直到这些最终子集在结果变量方面是同质的为止。实际上,这通常意味着最终的子集(称为树的叶子)每个仅包含一个或几个数据点。树已经准确地学习了数据,但是可能无法很好地预测出非常微小的新数据点。

停止条件

如果我们继续使树完全生长直到每个叶节点对应最低的杂质,那么数据通常会过拟合。如果过早停止拆分,则训练数据的错误不会足够高,并且由于bais会影响性能。因此,在对决策树进行建模时,防止过度拟合和欠拟合是至关重要的,可以通过以下两种方式完成:

  1. 对树大小设置约束
  2. 修剪树木

对树大小设置约束:

为节点拆分提供最少数量的样本。
为终端节点(叶)部署最少数量的样本。
允许树的最大深度(垂直深度)。
终端节点的最大数量。
拆分要考虑的最大功能。
修剪树:
修剪是机器学习中的一种技术,它通过删除树的部分来减小决策树的大小。它还降低了最终分类器的复杂度,因此通过减少过度拟合提高了预测准确性。可以通过预修剪或后修剪两种方式完成树修剪。
-预先整理:
如果当前节点没有将熵至少提高到预设(阈值),则停止拆分当前节点。
如果数据点的数量小于某些预设(阈值)值,就停止分区。
将树的深度限制为某个预设(阈值)值。

-修剪后:
可以通过首先允许树生长到最大潜力,然后在计算每个级别的交叉验证准确性之后修剪每个级别的树来完成此操作。

CART的优势:

决策树可以固有地执行多类分类。
它们提供了大多数模型可解释性,因为它们只是一系列if-else条件。
他们可以处理数值和分类数据。
特征之间的非线性关系不会影响决策树的性能。
CART的缺点:

数据集的微小变化会使树结构不稳定,从而导致差异。
如果某些类不平衡,决策树学习者将创建欠适应树。 因此,建议在与决策树拟合之前平衡数据集


树并不是无偏的,
在这里插入图片描述
H这里显示的所有可能的Tree
但是显示情况是,首选短树,以及在根附近具有高信息增益属性的树。归纳偏差是对某些假设的偏好,而不是对假设空间H的限制。

树的过拟合Greedy search可能找到的是local opt miss最好的。

在这里插入图片描述
防止过度拟合的另一种方法是,在生成带有很小样本的叶子之前,尽早停止树木的构建过程。这种启发式方法称为早期停止,但有时也称为预修剪决策树。

在分割树的每个阶段,我们都会检查交叉验证错误。如果错误减少的幅度不够大,则我们停止。提前停止可能会因过早停止而导致不适。当前的分割可能没有什么好处,但是在进行分割之后,后续的分割会大大减少错误。

提前停止和修剪可以一起使用,也可以分开使用,或者根本不使用。修剪后的决策树在数学上更加严格,找到的树至少与早期停止一样好。提前停止是一种快速解决方案

Pg33
Reduced Error Pruning
这种方法由Quinlan提出。这是决策树修剪中最简单,最容易理解的方法。该方法认为树中的每个决策节点都是修剪的候选,包括删除以该节点为根的子树,使其成为叶节点。可用数据分为三个部分:

训练示例
用于修剪树的验证示例
以及一组测试示例

用于提供对将来看不见的示例的准确性的无偏估计。如果新树的错误率等于或小于原始树的错误率,并且该子树不包含具有相同属性的子树,则将子树替换为叶节点,这意味着修剪已完成。否则不要修剪它。这种方法的优点是线性计算复杂度。当测试集比训练集小得多时,该方法可能会导致过度修剪。

error e悲观误差估计
在这里插入图片描述
f actural error
N number of examples
Zc constant confidence
在这里插入图片描述
在这里插入图片描述
子节点比自己的叶子小,删除。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

COMP 9417 T2_2021 Lesson 8 的相关文章

  • 【大数据】Flink 从入门到实践(一):初步介绍

    Flink 从入门到实践 一 初步介绍 Apache Flink 是一个框架和分布式处理引擎 用于在 无边界 和 有边界 数据流上进行 有状态 的计算 Flink 能在所有常见集群环境中运行 并能以内存速度和任意规模进行计算 1 架构 1

随机推荐

  • Git上传文件代码到GitHub(超详细)

    Git上传文件代码到GitHub 超详细 之前用git上传代码到GitHub上 时间一长又忘了 总结一下写下来 后面上传忘了再看 1 新建一个空文件夹 用来上传文件 空文件夹放在那里都可以 2 点进去空文件夹 鼠标右键 使用Git Bash
  • 淘汰赛冠军问题

    问题描述 有n个选手 n为2的K次方 进行比赛 两个选手中胜者参加下一场 负者出局 请求出最后的冠军 比赛的胜负由cmp 函数决定 这里是比较两个字符的大小 分析 本体很快可以想到两种方法 分治法和减治法 分治法 将选手平均分为两组 递归求
  • Github上 10 个开源免费且优秀的后台控制面板

    来自 简书 作者 SevDot 链接 https www jianshu com p 3bc7404af887 Web 开发中几乎的平台都需要一个后台管理 但是从零开发一套后台控制面板并不容易 幸运的是有很多开源免费的后台控制面板可以给开发
  • uniapp AES加密解密

    uniapp里我知道的有两种aes加密解密方式 一 引入crypto js 1 需要在uniapp项目根目录里 打开命令行 执行如下命令 npm install crypto js 2 在项目根目录 创建一个utils文件夹 并创建一个ae
  • windows下ejbCA的安装和配置

    本文是windows平台的ejbCA配置记录 配置过程中参考了很多网上的资料 在此表示感谢 参见 http job2job blog 163 com blog static 1416633120071162154863 http www c
  • 解决Windows因丢失vcruntime140.dll文件无法运行程序问题

    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题 如果是新手第一时间会认为是软件或游戏出错了 其实并不是这样 其主要原因就是你电脑系统的该dll文件丢失了或者损坏了 这时你只需下载这个vcruntime140 dll文件进行安装 前
  • C#实现图片压缩算法,精简高效(含源码)

    C 实现图片压缩算法 精简高效 含源码 图片压缩可以有效地减小图片文件的大小 加快页面加载速度 并降低带宽占用 本文将介绍一种基于C 语言实现的图片压缩算法 其具有精简高效的特点 可以帮助你快速实现压缩图片的功能 压缩算法主要分为有损压缩和
  • 4.8 服务器上的 Git - GitLab

    4 8 服务器上的 Git GitLab 版本说明 版本 作者 日期 备注 0 1 loon 2019 3 26 初稿 目录 文章目录 4 8 服务器上的 Git GitLab 版本说明 目录 GitLab 1 安装 Figure 50 B
  • WinDbg delete问题

    文章目录 1 测试程序如下 include stdafx h include CBaseDrvTest h int tmain int argc TCHAR argv CBaseDrvTest pBase new CBaseDrvTest
  • django ajax做评论用的哪个库,Django Ajax评论系统

    我想用Ajax创建一个评论系统 我的主要目的是在不刷新页面的情况下获得新的评论 我在我的HTML文件中添加了一些js代码 但是没有用 我的错误在哪里 我该怎么做 在 视图 py def post detail request pk post
  • socket实验——stmp简单邮件代理

    Q A 1 email应用的组成 邮件客户端 邮件服务器 SMTP协议 2 为什么email要使用客户端服务器的结构 而不是直接在用户间建立连接 想象自己不在线和对方不在线的情况 3 SMTP协议 简单邮件传输协议 传输层协议 TCP 端口
  • mui ajax 懒加载,MUI懒加载 - 前端小谢的个人空间 - OSCHINA - 中文开源技术交流社区...

    在各种列表中 有些需要大量的图片 在这些列表结构中使用懒加载可以很快提高加载速度 我们需要引入mui lazyload js和mui lazyload img js两个文件 还有占位图 懒加载 window page fk fn getDo
  • windows环境下部署以太坊私有链

    1 部署环境 1 Windows操作系统 window10 X64 2 以太坊客户端 geth windows amd64 1 8 3 329ac18e exe 3 以太坊钱包 Ethereum Wallet win64 0 9 3 zip
  • 《C++ Primer》13.1.2节练习

    练习13 6 拷贝赋值运算符本身是一个重载的赋值运算符 定义为类的成员函数 左侧运算对象绑定到隐含的this参数 而右侧运算对象是所属类类型的 作为函数的参数 函数返回指向其左侧运算对象的引用 当对类对象进行赋值时 会使用拷贝赋值运算符 通
  • 网络端口详解

    0端口 无效端口 通常用于分析操作系统 1端口 传输控制协议端口服务多路开关选择器 2端口 管理实用程序 3端口 压缩进程 5端口 远程作业登录 7端口 回显 9端口 丢弃 11端口 在线用户 13端口 时间 17端口 每日引用 18端口
  • C#中GDI绘制高质量平滑图形实例

    protected override void OnPaint PaintEventArgs e try Graphics g e Graphics 获取绘制对象 设置参数 g SmoothingMode System Drawing Dr
  • k8s部署nginx实例、iptables开放端口

    1 运行nginx实例 kubectl run nginx image nginx replicas 2 port 80 2 查看pod root localhost kubectl get pods NAME READY STATUS R
  • 【计算机毕业选题】2023~2024计算机毕业设计选题篇-选题推荐

    学弟学妹们 大家好 这里是JAVA编码选手的博客空间 一年一度的计算机专业毕业设计又要开始了 大四的你们准备好选题了吗 先介绍一下自己 本人软件工程毕业 5年软件开发经验 计算机程序设计 java程序 Java代做 微服务SSM Java管
  • linux删除大量文件时,报错  argument list too long 

    linux删除大量文件时 报错 argument list too long 原因 删除数据量太大 解决办法 1 删除某个文件夹下 所有文件 cd 到需要删除的文件夹内 删除所有文件 ls xargs rm r 执行完后 可能有些文件删除不
  • COMP 9417 T2_2021 Lesson 8

    贝叶斯 numeric attributes 决策树 优点 某种形式的树可能仍然是最流行的data mining 易于理解 易于实施 易于使用 可以分类可以回归 可用于大数据的处理 例子 例子 在N中需要多少个M来分类 N个特征 thres