当前位置: 首页 > news >正文

决策树的基本构建流程

决策树的基本构建流程

决策树的本质是挖掘有效的分类规则,然后以树的形式呈现

这里有两个重点:

  1. 有效的分类规则;
  2. 树的形式。

有效的分类规则:叶子节点纯度越高越好,就像我们分红豆和黄豆一样,我们当然是想把红豆和黄豆完全分开。

这里标签的纯度的衡量指标有:

  1. 分类误差;
  2. 信息熵(Entropy)
  3. 基尼系数(Gini)

我们举例来看看这三个指标是如何计算的:

对于单个数据集

假如我们有10条样本,6条0类样本,4条1类样本

则0类样本占: 6 10 \frac{6}{10} 106
1类样本占: 4 10 \frac{4}{10} 104

分类误差(1-多数类的占比): 1 − 6 10 = 0.4 1-\frac{6}{10}=0.4 1106=0.4
信息熵: − 6 10 ∗ l o g 2 6 10 − 4 10 ∗ l o g 2 4 10 = 0.97 -\frac{6}{10}*log_2\frac{6}{10}-\frac{4}{10}*log_2\frac{4}{10} =0.97 106log2106104log2104=0.97
基尼系数: 1 − ( ( 6 10 ) 2 + ( 4 10 ) 2 ) = 0.48 1-((\frac{6}{10})^2+(\frac{4}{10})^2)=0.48 1((106)2+(104)2)=0.48

对于多个数据集
在这里插入图片描述

如何计算B1,B2两个子节点整体的评估指标?

加权求和

这里以基尼系数为例

Gini_B1 = 1 − ( ( 2 5 ) 2 + ( 3 5 ) 2 ) = 0.48 1-((\frac{2}{5})^2+(\frac{3}{5})^2)=0.48 1((52)2+(53)2)=0.48

Gini_B2 = 0

Gini_B = 5 8 \frac{5}{8} 85*Gini_B1 + 3 8 \frac{3}{8} 83*Gini_B2= 5 8 ∗ 0.48 \frac{5}{8}*0.48 850.48+ 3 8 ∗ 0 \frac{3}{8}*0 830=0.3

介绍完了有效的分类规则,我们再来看看第二个重点:树的形式。
下面简单画一下二层分类树。
在这里插入图片描述
主流的决策树分类类别可划分为:

  1. D3(Iterative Dichotomiser 3) 、C4.5、C5.0决策树
  2. CART(Classification and Regression Trees)决策树
  3. CHAID(Chi-square automatic interaction detection)树

下面我们分别来看看决策树构建重点问题

1. 决策树的生长方向?

决策树生长的方向也就是令每个划分出来的子集纯度越来越高的方向

2. 如何挑选有效的分类规则?

选择信息增益最大的

假设我们有age列:
在这里插入图片描述
首先逐列对特征进行数值排序:
在这里插入图片描述
然后寻找特征不同取值之间的中间点为切点:
在这里插入图片描述
N个取值,有N-1种划分方式
这里有10个取值,所以有9种划分方式将数据集一分为二。
假设我们以10和9的中间点为划分方式
10 + 9 2 = 9.5 \frac{10+9}{2}=9.5 210+9=9.5
则我们可以以age是否小于等于9.5为划分规则,将数据集一分为二。

Notes:
1.CART(二叉树)用这种方法同时处理连续变量(预测值是划分后子数据集的均值)和离散变量;
2. C4.5连续变量用这种方式,离散变量用列的取值。

信息增益的计算:
CART Gain = Gini(父节点)- Gini(子节点)
ID3和C4.5 Gain = Entropy(父节点)- Entropy(子节点)

3. 如何停止迭代生长?

收敛条件:
(1)两轮迭代损失函数的差值小于某个值;
(2)限制最大迭代次数,也就是约束树最多生长几层

相关文章:

决策树的基本构建流程

决策树的基本构建流程 决策树的本质是挖掘有效的分类规则,然后以树的形式呈现。 这里有两个重点: 有效的分类规则;树的形式。 有效的分类规则:叶子节点纯度越高越好,就像我们分红豆和黄豆一样,我们当然…...

[极客大挑战 2019]Upload1

直接上传php一句话木马&#xff0c;提示要上传image 把文件名改成gif并加上gif文件头后&#xff0c;绕过了对image类型的检测&#xff0c;但是提示文件内含有<?&#xff0c;且bp抓包后改回php也会被检测 那我们考虑使用js执行php代码 <script languagephp>eval($_PO…...

Android 渲染机制

1 Android 渲染流程 一般情况下&#xff0c;一个布局写好以后&#xff0c;使用 Activity#setContentView 调用该布局&#xff0c;这个 View tree 就创建好了。Activity#setContentView 其实是通过 LayoutInflate 来把布局文件转化为 View tree 的&#xff08;反射&#xff09;…...

go语言Map与结构体

1. Map map是一种无序的基于key-value的数据结构&#xff0c;Go语言中的map是引用类型&#xff0c;必须初始化才能使用。 1.1. map定义 Go语言中 map的定义语法如下 map[KeyType]ValueType其中&#xff0c; KeyType:表示键的类型。ValueType:表示键对应的值的类型。map类型的…...

C#,打印漂亮杨辉三角形(帕斯卡三角形)的源代码

杨辉 Blaise Pascal 这是某些程序员看完会哭的代码。 杨辉三角形&#xff08;Yanghui Triangle&#xff09;&#xff0c;是一种序列数值的三角形几何排列&#xff0c;最早出现于南宋数学家杨辉1261年所著的《详解九章算法》一书。 欧洲学者&#xff0c;最先由帕斯卡&#x…...

[SUCTF 2019]CheckIn1

黑名单过滤后缀’ph&#xff0c;并且白名单image类型要有对应文件头 对<?过滤&#xff0c;改用GIF89a<script languagephp>eval($_POST[cmd]);</script>&#xff0c;成功把getshell.gif上传上去了 尝试用.htaccess将上传的gif当作php解析&#xff0c;但是失败…...

C语言练习题110例(十)

91.杨辉三角 题目描述: KK知道什么叫杨辉三角之后对杨辉三角产生了浓厚的兴趣&#xff0c;他想知道杨辉三角的前n行&#xff0c;请编程帮他 解答。杨辉三角&#xff0c;本质上是二项式(ab)的n次方展开后各项的系数排成的三角形。其性质包括&#xff1a;每行的端点数为1&…...

前端学习-0125

<h>标签 含义&#xff1a;标题 级别&#xff1a;<h1> - <h6> 快捷键生成 &#xff1a;h$*[0,6] 属性&#xff1a;align"left|center|right" <p>标签 含义&#xff1a; 段落 <br>标签 含义&#xff1a;换行 <hr>标签 含义&…...

gin中使用validator做参数校验

在web开发中对请求参数进行校验&#xff0c;通常在代码中定义与请求参数相对应的模型&#xff08;结构体&#xff09;&#xff0c;借助模型绑定快捷地解析请求中的参数&#xff0c;例如 gin 框架中的Bind和ShouldBind系列方法。 gin框架使用github.com/go-playground/validato…...

理想架构的Doherty功率放大器理论与仿真

Doherty理论—理想架构的Doherty功率放大器理论与仿真 参考&#xff1a; 三路Doherty设计 01 射频基础知识–基础概念 ADS仿真工程文件链接&#xff1a;理想架构的Doherty功率放大器理论与仿真 目录 Doherty理论---理想架构的Doherty功率放大器理论与仿真0、Doherty架构的作用…...

22. 离线MC强化学习算法(1)

文章目录 1. 理解离线MC强化学习的关键2. 什么是重要性采样3.重要性采样定理给我们的一般启示4.重要性采样定理给离线蒙特卡洛强化学习的启示 1. 理解离线MC强化学习的关键 离线强化学习的特点是采样策略 π ′ ≠ 待评估策略 π \pi\ne 待评估策略\pi π′待评估策略π&…...

如何阅读xml电子发票

xml电子发票是官方给出的电子存档的文件格式&#xff0c;本质是文本&#xff0c;所以文件很小&#xff0c;大量发票存储&#xff0c;能够更加凸显优势。 但是xml电子发票不方便阅读&#xff0c;因为里面是xml格式&#xff0c;对于财务人员来讲&#xff0c;看“代码”简直太难了…...

php实现多进程的几种方式

目录 一&#xff1a;使用pcntl扩展库 二&#xff1a;使用Swoole扩展 三&#xff1a;使用多进程模式PHP-FPM 在PHP中实现多进程主要有以下几种方式&#xff1a; 一&#xff1a;使用pcntl扩展库 pcntl扩展库提供了多线程相关的函数&#xff0c;如pcntl_fork()用于创建子进程…...

CmakeList教程

一、CmakeList介绍&#xff1a; cmake 是一个跨平台、开源的构建系统。它是一个集软件构建、测试、打包于一身的软件。它使用与平台和编译器独立的配置文件来对软件编译过程进行控制。它会通过写的语句自动生成一个MakeFile,从而实现高效编译 二、CmakeList的常用指令 1.指定…...

JavaWeb之JavaScript-Vue --黑马笔记

什么是JavaScript&#xff1f; JavaScript&#xff08;简称&#xff1a;JS&#xff09; 是一门跨平台、面向对象的脚本语言。是用来控制网页行为的&#xff0c;它能使网页可交互。 JavaScript 和 Java 是完全不同的语言&#xff0c;不论是概念还是设计。但是基础语法类似。 …...

pikachu_ssrf攻略

ssrf&#xff08;curl&#xff09;&#xff1a; 打开pikachu靶场&#xff1a; http://127.0.0.1/pikachu-master/vul/ssrf/ssrf_curl.php?urlhttp://127.0.0.1/pikachu-master/vul/ssrf/ssrf_info/info1.php 发现URL地址最后面是info1.php 猜测一下有没有可能存在info2.php?…...

门面模式 Facade Pattern

门面模式 门面模式&#xff08;Facade Pattern&#xff09;&#xff0c;也称之为外观模式&#xff0c;其核心为&#xff1a;外部与一个子系统的通信必须通过一个统一的外观对象进行&#xff0c;使得子系统更易于使用。 在软件开发领域有这样一句话&#xff1a;计算机科学领域…...

Linux基础指令大汇总

Linux的指令比较多&#xff0c;在学习的过程中要学会总结和归纳&#xff0c;同时结合实践多多使用&#xff0c;就像学数学一样&#xff0c;不是背过公式就等于掌握的&#xff0c;而是要知道在什么时候用&#xff0c;怎么用才是关键。 这篇文章会列举一系列常用的指令&#xff0…...

Unity配置表xlsx/xls打包后读取错误问题

前言 代码如下&#xff1a; //文本解析private void ParseText(){//打开文本 读FileStream stream File.Open(Application.streamingAssetsPath excelname, FileMode.Open, FileAccess.Read, FileShare.Read);//读取文件流IExcelDataReader excelRead ExcelReaderFactory…...

CSS基本知识总结

目录 一、CSS语法 二、CSS选择器 三、CSS样式表 1.外部样式表 2.内部样式表 3.内联样式 四、CSS背景 1.背景颜色&#xff1a;background-color 2.背景图片&#xff1a;background-image 3.背景大小&#xff1a;background-size 4.背景图片是否重复&#xff1a;backg…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

涂鸦T5AI手搓语音、emoji、otto机器人从入门到实战

“&#x1f916;手搓TuyaAI语音指令 &#x1f60d;秒变表情包大师&#xff0c;让萌系Otto机器人&#x1f525;玩出智能新花样&#xff01;开整&#xff01;” &#x1f916; Otto机器人 → 直接点明主体 手搓TuyaAI语音 → 强调 自主编程/自定义 语音控制&#xff08;TuyaAI…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

基于 TAPD 进行项目管理

起因 自己写了个小工具&#xff0c;仓库用的Github。之前在用markdown进行需求管理&#xff0c;现在随着功能的增加&#xff0c;感觉有点难以管理了&#xff0c;所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD&#xff0c;需要提供一个企业名新建一个项目&#…...

windows系统MySQL安装文档

概览&#xff1a;本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容&#xff0c;为学习者提供全面的操作指导。关键要点包括&#xff1a; 解压 &#xff1a;下载完成后解压压缩包&#xff0c;得到MySQL 8.…...

【HarmonyOS 5】鸿蒙中Stage模型与FA模型详解

一、前言 在HarmonyOS 5的应用开发模型中&#xff0c;featureAbility是旧版FA模型&#xff08;Feature Ability&#xff09;的用法&#xff0c;Stage模型已采用全新的应用架构&#xff0c;推荐使用组件化的上下文获取方式&#xff0c;而非依赖featureAbility。 FA大概是API7之…...