决策树简介

news/2024/5/15 5:38:10/文章来源:https://www.cnblogs.com/amboke/p/16707413.html

决策树简介

决策树实际上是一个布尔函数,它的输出可以是“0 或 1”或“-1 或 +1”或“-1、0 或 +1”。决策树的大小等于其中存在的节点数,其深度等于从顶部到根的最长路径的长度。

错误率:

训练集始终是给模型的标记示例,模型训练得越多,其错误率就越低。

训练样本 = { set } = { (X¹, Y¹), (X², Y²),...。 (X^n, Y^m) }
其中“n”表示训练样本的特征数,“m”表示训练样本的大小。

错误率/训练错误在数学上等于“训练时模型出错的样本数/样本总大小”。

树的根和错误率:

通过说根,我们实际上是指连接到当前节点的下一个节点。 X¹ 的根表示,X¹ 的输出将传递给下一个节点/根。

通常,根表示树的所有节点产生的最终输出。即整个模型的输出。

势函数 (Ø, phi) 用于决定必须将什么值放在树的根部,其根部的值是模型的实际输出。

Ø(a) = min(a, 1 — a)

假设我们提供了一个模型,其中包含“10”个正例和“5”个负例。为了计算节点 X¹ 中 Y = 0 时的错误率,

要得到 Y = 0,我们必须弄错 10 个正例。因为,错误率是(错误的样本数/总样本数)= 10/(10 + 5)= 2/3

并且,Ø(2/3) = min(2/3, 1/3) = 1/3

这是单节点 Y = 0 的平凡决策树的错误率。错误率为 1/3。

一般来说,错误率 = 概率 ( [x,y]~{set}, Y = 0 )

例如 2:假设在决策树的节点/叶“X¹”中,计算 Y = 0 的概率。如果我们为其提供“12”个正例和“4”个负例。

Ø 要得到 Y = 0,我们必须得到 '12' 个正例错误。所以,率=
12/16 = 1/4

最后使用势函数,Ø(1/4) = min(1/4, 3/4) = 1/4。

这种计算错误率的算法通常是基于一个字面的概率,但是如果我们不确定样本的数量,

那么,新的错误率=

概率([x,y]~{set}, X¹ = 0)。 Ø 概率 (( [x,y]~{set}, (Y = 0/ X¹ = 0 ) + 概率( [x,y]~{set}, X¹ = 1 )。Ø 概率 (( [x,y] ~{set}, (Y = 0/ X¹ = 1)

因此,X¹ 的最大增益计算为使用 X¹ 的旧错误率 - 使用 X¹ 的新错误率。

我们总是将最高增益的输出放在树的下一个节点/根中。

深入潜在功能,基因功能:

树的结构由其势函数 Ø (phi) 决定。势函数 Ø(a) = min( a, 1 — a) 对应模型的错误率,通常表示为 'ع'。

Ø(a) = 2.a.( 1 — a) 的基因函数,表示为'ز'。实际上,基因功能只是潜在功能的上限,或者'ز'是'ع'的上限。它的值越小,训练中的误差就越小。

计算和例子:

样本模型,S =

Ø ++
Ø + X¹ | X² | +ve 例如。 | -ve 例如 +
Ø +
+
Ø + 0 | 0 | 1 | 1+
Ø + 0 | 1 | 2 | 1+
Ø + 1 | 0 | 3 | 1. +
Ø + 1 | 1. | 4 | 2. +
Ø +==============================+

Ø(a) = 2。一个 。 (一——一)

1.计算Ø(概率( S [ -ve Eg ]):

负例总数 = 5
示例总数 = 15
反例的概率 = 1/3
现在,Ø(a) = 2。 1/3。 2/3 = 4/9。

这是潜在的功能
平凡的树,4/9。

为了通过手动函数决定将 X¹ 或 X² 放在树的根部,我们必须单独计算它们。

首先是 X¹ :

概率(X¹ = 0)。 Ø (Pr. (-ve Eg/ X¹ = 0)) + Pr.(X¹ = 1)。 Ø (Pr. (-ve Eg/ X¹ = 1))

1. 概率(X¹ = 0) =
X¹ 为 0 = 5_ 的样本数
总点数 15 即 1/3。

2. 概率(-ve Eg/X¹ = 0)=
-ve 的数量,例如 X¹ 为 0 = 2
X¹ 为 0 的 Eg 总数 5
Ø(2/5) = 2. 2/5 . 3/5 = 12/15

3. 概率(X¹ = 1) = 2/3
4. 概率(-ve Eg/X¹ = 1) = 3/10
Ø(3/10)= 2. 3/10。 7/10 = 21/50

现在,整个值等于
1/3。 2/5 + 12/15。 21/50 = 11/25

将此值与 11/25 与 4/9(较早获得)进行比较,我们可以说 11/25 略小于 4/9。

现在为 X² 计算相同的东西:

概率(X² = 0)。 Ø (概率(-ve Eg/ X² = 0)) + 概率(X² = 1)。 Ø (概率(-ve Eg/ X² = 1))

1. 概率(X² = 0) =
X² 为 0 = 6_ 的样本数
总点数 15,即 2/5。

2. 概率(-ve Eg/X² = 0)=
X² 为 0 = 2 的 -ve Eg 的数量
X² 为 0 的 Eg 总数 6。即 1/3。
Ø(1/3) = 2. 1/3. 2/3 = 4/9

3. 概率(X² = 1) = 3/5
4. 概率(-ve Eg/X² = 1) = 1/3

Ø( 3/10) = 2. 3/9. 7/9 = 4/9

现在,整个值等于
2/5。 4/9 + 3/5.4/9 = 4/9

比较这个值,我们实际上得到了与我们之前获得的 4/9 相同的值。

现在,如果我们计算增益:
增益 = 旧值 - 新值

X¹ 的增益 = 4/9–11/25 > 0
X² 增益 = 4/9–4/9 = 0

因此,我们必须选择放入根中的文字是 X¹,因为选择 X¹ 会给我们的模型带来一些收益。
增益越大,错误率就越低。

我们的算法什么时候结束?

由于我们的算法是基于递归的,即使我们获得任何文字的最大增益,它也会继续运行。

为了给我们的算法做一个端点,我们有很多方法:

1. 当任何文字的增益变得非常小时,停止算法。这是结束算法的最常见方式。

2.通过剪枝,剪枝是从树中移除某些随机节点的过程。它可以帮助我们重新更改整个数据并重新计算输出

3. 通过智能构建决策树:

○ 通过使用随机森林算法构建一棵树。

在树的随机森林模型中,我们构建了许多小的独立决策树,并在所有小树中取最常见的输出。

我们可以通过对原始数据样本和随机特征进行随机二次抽样来创建一棵小树。所以每棵小树都有随机选择的点和随机选择的特征。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明

本文链接:https://www.qanswer.top/37994/29231913

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

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

相关文章

程序里对象很深很大,可以用这个设计模式缓解一下

如果一个类的有非常多的属性,层级还很深。这个妥妥的是我的对象很大,你创建的时候忍一下......那你每次要创建的时候都忍一下?有没有一种好的方式让我们创建太的时候使用体验更好一点呢? 今天的文章里就给大家介绍一种设计模式,来…

C++多线程的线程返回值问题

对于多线程可执行对象的返回值是何时返回,以及得到的呢? 对于需要用到线程返回值的线程要使用future类对象来实现 文章目录future对象async()launch::deferred参数launch::async参数packaged_taskpromisefuture对象 是一个类模板 提供访问异步对象的操作…

优化 | Management Science 7-8月文章精选: 信息系统中的运筹学

作者:Evelyn Yao 清华大学本科在读 在“Management Science近期论文精选”中,我们有主题、有针对性地选择了Management Science中一些有趣的文章,不仅对文章的内容进行了概括与点评,而且也对文章的结构进行了梳理,旨在…

非零基础自学Java (老师:韩顺平) 第13章 常用类 13.5 StringBuffer类

非零基础自学Java (老师:韩顺平) ✈【【零基础 快速学Java】韩顺平 零基础30天学会Java】 第13章 常用类 文章目录非零基础自学Java (老师:韩顺平)第13章 常用类13.5 StringBuffer类13.5.1 基本介绍13.5.2 String VS StringBuffer13.5.3 String 和 Str…

HashMap

1.HashMap集合 1.1HashMap集合概述和特点【理解】 HashMap底层是哈希表结构的依赖hashCode方法和equals方法保证键的唯一如果键要存储的是自定义对象,需要重写hashCode和equals方法 1.2 特点 HashMap是线程不安全的实现; HashMap可以使用null作为key…

【Pytorch深度学习实战】(9)神经语言模型(RNN-LM)

🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎 📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃 🎁欢迎各位→点赞…

第一视角体验搭载全志T507-H的开发板MYD-YT507H开发板

如今车规级芯片市场潜力巨大,需求旺盛,芯片都在逐渐走向国产化。本文要介绍的主角是MYD-YT507H开发板,该开发板是米尔科技结合全志国产工业级平台CPU——全志T507-H芯片研制的CPU模组,全志T507-H可广泛用于电力物联网、汽车电子、…

目标检测开源框架YOLOv6全面升级,更快更准的2.0版本来啦

9月5日,美团视觉智能部发布了YOLOv6 2.0版本,本次更新对轻量级网络进行了全面升级,量化版模型 YOLOv6-S 达到了 869 FPS,同时,还推出了综合性能优异的中大型网络(YOLOv6-M/L),丰富了…

一个div靠左另一个靠右

1.使用flex布局<style>#back{border: red solid 1px;width: 800px;height: 500px;display: flex;align-items: center;}#left{border: blue 1px solid;width: 100px;height: 100px;justify-content: flex-start;}#right{border: blue 1px solid;width: 100px;height: 100…

【前端进阶】-TypeScript类型声明文件详解及使用说明

前言 博主主页&#x1f449;&#x1f3fb;蜡笔雏田学代码 专栏链接&#x1f449;&#x1f3fb;【TypeScript专栏】 前三篇文章讲解了TypeScript的一些高级类型 详细内容请阅读如下&#xff1a;&#x1f53d; 【前端进阶】-TypeScript高级类型 | 泛型约束、泛型接口、泛型工具类…

Google Pub/Sub入门

什么是Google Pub/Sub&#xff1f; 首先他是一个messaging buffer/coupler消息缓冲区/耦合器&#xff0c;Decouples senders and receivers解耦发送者和接收者。 一些特性&#xff1a; 使用 Dataflow 注入分析事件并将其流式插入到 BigQuery免运维、安全、可伸缩的消息传递系…

MySQL基础总结合集

MySQL是啥&#xff1f;数据库又是啥&#xff1f; MySQL&#xff1a; MySQL 是最流行的关系型数据库管理系统&#xff0c;在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System&#xff1a;关系数据库管理系统)应用软件之一。 数据库&#xff1a; 数…

基于nodejs+vue的读书会网站

实行网上读书会网站&#xff0c;对其改善目前人们读书现状提供一些帮助和优化措施&#xff0c;为人们在未来看书节约了很多时间&#xff0c;使得人们在未来利用自己有限的时间可以看到更多对自己有益的书籍。 基于Vue的读书会网站的实现&#xff0c;通过网上系统的研发构造&…

你是否想过,GitHub Pages也可以自动构建?|原创

本文讲述了如何利用 GitHub Actions 来自动构建 GitHub Pages 项目&#xff0c;免去繁琐的手动构建再提交过程&#xff0c;让你专注于写作。点击上方“后端开发技术”&#xff0c;选择“设为星标” &#xff0c;优质资源及时送达GitHub Actions 自动构建之前的文章我们已经讲过…

Tomcat 在IDEA中运行Tomcat,控制台乱码问题的解决方案

IDEA中运行Tomcat,控制台乱码问题的解决方案试了好多种网上的方案(只有这一种能解决)环境:jdk 11 idea 2022.2.4 tomcat 9.0.54解决方案: 1.打开tomcat的配置文件(apache-tomcat-9.0.54\conf\logging.properties)将文件中的java.util.logging.ConsoleHandler.encoding =…

el-tree增加提示语

element ui tree树形控件加提示信息<el-tree :data="tieLinedata" :props="defaultProps" @node-click="handleNodeClick"><span class="span-ellipsis" slot-scope="{ node, data }"><span :title="no…

【图像增强】基于DEHAZENET和HWD的水下去散射图像增强附matlab代码

1 内容介绍 去散射和边缘增强是解决水下图像的对比度严重衰减、颜色偏差和边缘模糊等问题的关键步骤。这篇论文提出了一种较好的水下图像增强的方法。首先使用经过端到端训练的卷积神经网络去测量输入图片&#xff0c;同时以自适应双边滤波器对传输图片进行处理。接着提出一种…

allure介绍——生成完美的测试报告

一、allure简介 Allure是输出网页测试报告的一种框架 1、该框架是基于Java写的,所以安装该框架需要先安装JDK; 2、下载allure命令行工具,路径:https://github.com/allure-framework/allure2/releases 注:①下载包放到pytest文件夹中,然后将allure/bin的路径放到环境变量的…

css font-size设置小于12px失效(转)

原文:https://blog.csdn.net/weixin_38629529/article/details/119866495 1、描述 不知道你有没有遇到这样的情况,设置了font-size为10px,打开控制台审查元素也显示的是10px,但浏览器渲染的字体大小还是没有发生改变。 这是因为浏览器(以Chrome为例,其他没测试过)在中文…

第五篇、Callable接口实现多线程

文章目录前言一、实现Callable接口二、代码示例1.Callable接口实现多线程总结前言 上一篇我们共同认识了并发问题&#xff0c;那么本篇我们将一起来学习Callable接口实现多线程。 一、实现Callable接口 上篇内容我们通过实现Runnable实现多线程&#xff0c;本篇我们将学习如何…