当前位置: 首页 > 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…...

手把手教你用YOLOv5训练自己的交通标志数据集(从LabelImg标注到模型部署)

从零构建YOLOv5交通标志检测器的实战指南 在自动驾驶和智能交通系统快速发展的今天&#xff0c;准确识别道路标志已成为计算机视觉领域的重要应用场景。不同于传统图像处理方法&#xff0c;基于深度学习的目标检测技术能够适应复杂环境变化&#xff0c;而YOLOv5以其卓越的速度-…...

从Safetensors到GGUF:利用llama.cpp解锁Ollama模型部署新路径

1. 为什么需要从Safetensors转换到GGUF格式 最近在魔塔社区下载了几个热门的大模型&#xff0c;发现都是safetensors格式的&#xff0c;但直接扔进Ollama里根本跑不起来。这个问题困扰了我好几天&#xff0c;直到发现了llama.cpp这个神器。safetensors其实是Hugging Face生态中…...

什么时候会触发FullGC

面试 1、老年代空间不足。应该让对象在年轻代多存活一段时间&#xff0c;不要创建过大的对象及数组。 2、元空间满了。说明此时&#xff0c;系统中要加载的类、反射的类和调用的方法较多。 3、MinorGC执行后晋升到老年代的平均大小大于老年代的剩余空间。...

GIS小白必看!Global Mapper处理正射影像的5个高频问题解答(含奥维地图导入避坑指南)

GIS新手实战指南&#xff1a;Global Mapper正射影像处理全解析 第一次打开Global Mapper时&#xff0c;那些密密麻麻的工具栏和复杂的参数设置确实让人望而生畏。去年我刚接触GIS时&#xff0c;处理无人机航拍的正射影像就踩了不少坑——坐标系选错导致影像偏移几百米、导出分幅…...

梦行云软件——溯源系统-》企业方》产品溯源管理》员工管理

梦行云软件——溯源系统-》企业方》产品溯源管理》员工管理 湖南梦辰软件开发有限公司是立足怀化、服务全国的数字化技术服务商。公司拥有19项软件著作权及多项自主知识产权。专注于Web系统、APP与小程序定制开发&#xff0c;提供全链路数字化解决方案。以合规先行与稳定交付为…...

Umi-OCR插件技术方案:5款引擎深度对比与实战配置指南

Umi-OCR插件技术方案&#xff1a;5款引擎深度对比与实战配置指南 【免费下载链接】Umi-OCR_plugins Umi-OCR 插件库 项目地址: https://gitcode.com/gh_mirrors/um/Umi-OCR_plugins Umi-OCR插件库为开源OCR工具提供了丰富的引擎选择&#xff0c;从本地CPU加速到云端AI识…...

LeetCode 153. 旋转排序数组找最小值:二分最优思路

LeetCode中等难度的经典题目——153. 寻找旋转排序数组中的最小值。这道题的核心考点是「二分查找」&#xff0c;难点在于如何利用“旋转排序数组”的特性&#xff0c;在O(log n)时间复杂度内找到最小值&#xff0c;也是面试中常考的二分变形题。 一、题目解读&#xff1a;读懂…...

3步搞定ERPNext自动化部署:让企业管理系统安装变得简单

3步搞定ERPNext自动化部署&#xff1a;让企业管理系统安装变得简单 【免费下载链接】erpnext_quick_install Unattended install script for ERPNext Versions, 13, 14 and 15 项目地址: https://gitcode.com/gh_mirrors/er/erpnext_quick_install 还在为复杂的ERPNext安…...

BM12O2321-A高集成H桥模块的9位UART驱动原理与Arduino库实践

1. 项目概述BM12O2321-A 是由 Basetron&#xff08;BestModules&#xff09;推出的高集成度 H 桥驱动模块&#xff0c;专为中小功率直流电机、电磁阀、LED 阵列等双向负载控制场景设计。该模块并非传统意义上的分立 H 桥芯片&#xff08;如 L298N、TB6612FNG&#xff09;&#…...

从外卖配送看算法实战:Python+NetworkX解决简化版VRP问题

外卖配送路径优化实战&#xff1a;用PythonNetworkX解决简化版VRP问题 中午12点&#xff0c;城市里的外卖订单如潮水般涌来。配送员小张的手机上瞬间出现了8个不同方向的订单&#xff0c;他盯着地图上分散的标记点皱起了眉头——怎样才能用最短的时间送完所有外卖&#xff1f;这…...