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

【人工智能基础05】决策树模型

文章目录

  • 一. 基础内容
    • 1. 决策树基本原理
      • 1.1. 定义
      • 1.2. 表示成条件概率
    • 2. 决策树的训练算法
      • 2.1. 划分选择的算法
        • 信息增益(ID3 算法)
        • 信息增益比(C4.5 算法)
        • 基尼指数(CART 算法)
        • 举例说明:计算各个类别的信息增益
      • 2.2. 叶子节点的选择
      • 2.3. 剪枝
        • 预剪枝
        • 后剪枝
      • 2.4. 决策树训练算法分类
  • 二. 习题
    • 1. 归一化对决策树的影响
    • 2. 选择决策树模型
    • 3. 决策树计算
    • 4. 基尼系数的优势
    • 5. 在叶子上使用线性模型的优缺点

本文重点内容

  1. 什么是决策树
  2. 决策树的基本原理
  3. 决策树训练方法,防止过拟合的方法
  4. 分类和回归决策树筛选原则

一. 基础内容

1. 决策树基本原理

1.1. 定义

分类决策树模型是一种描述对实例进行分类的树形结构。决策树由节点和有向边组成。其中节点有两种类型:内部节点和叶节点。内部节点表示一个特征或属性,叶结点表示一个类,结构如下图:

在这里插入图片描述

 

1.2. 表示成条件概率

决策树还可以表示成在给定条件下类的条件概率分布。

决策树将特征空间划分为会不相交的单元,在每个单元定义一个类的概率分布,这就构成了一个条件概率分布。

条件概率计算方式:

在这里插入图片描述

  • 概率分布计算:由各个单元给定条件下类的条件概率分布组成,将这些概率沿着分支相乘,即得出所需的概率。

 

极大似然函数:损失函数的优化。

在这里插入图片描述

 

2. 决策树的训练算法

决策树学习算法通常是递归的原则最优特征,根据该特征对训练数据进行分割:即特征空间的分割。

决策树的结构收到很多因素影响:特征选择、分裂点选择、树的深度、复杂度控制、剪枝等。

 

2.1. 划分选择的算法

特征选择:在每个节点上,如何选择一个特征进行分裂,常用的特征选择指标有:信息增益、信息增益率,以及基尼指数:ID3、C4.5、CART的等决策树算法。

信息增益(ID3 算法)

信息熵的定义与计算

在这里插入图片描述

信息增益的计算

在这里插入图片描述

 

信息增益:衡量了信息对数据集分类结果的贡献度。
在构建决策树时,ID3 算法选择信息增益最大的特征作为当前节点的划分特征。

例如,在一个判断水果是苹果还是橙子的决策树中,有颜色、形状等特征,通过计算这些特征的信息增益,若颜色特征的信息增益最大,那么就先根据颜色来划分节点。

 

信息增益比(C4.5 算法)

信息增益比的引入原因

  • 信息增益存在一个问题,它偏向于选择取值较多的特征。为了克服这个问题,C4.5 算法引入了信息增益比。
  • 在决策树构建过程中,C4.5 算法选择信息增益比最大的特征作为划分特征。例如,在一个包含很多特征的数据集里,有些特征虽然信息增益较大,但它可能有过多的取值,通过计算信息增益比,可以更合理地选择划分特征。

 

 

基尼指数(CART 算法)

基尼指数的含义:

基尼指数用于衡量数据集的纯度,其值越小表示纯度越高。
 
例如,在客户流失预测的决策树中,基尼不纯度可以帮助我们了解每个节点中客户流失(或不流失)的纯度情况。如果一个节点的基尼不纯度很高,说明这个节点中的客户在流失与否的分类上很混乱,需要进一步划分来提高纯度。

 

基尼指数的作用:划分特征。

对于每个候选特征,计算按照该特征划分后的基尼指数,选择使得基尼指数最小的特征作为划分特征。这是因为最小的基尼指数意味着划分后子数据集的纯度最高,这样可以构建出更有效的决策树。
 
例如,在信用风险评估决策树中,有收入、负债、信用记录等多个特征。通过计算每个特征划分后的基尼指数,选择能使基尼指数最小的特征(如信用记录)进行划分,从而更好地将高风险和低风险客户区分开来。

 

基尼指数可以防止过拟合

基尼指数的使用有助于控制决策树的生长,防止过拟合。如果不加以控制,决策树可能会过度划分数据,导致在训练数据上表现很好,但在新数据上性能很差。
 
通过选择基尼指数最小的特征进行划分,决策树会优先选择最能有效降低数据集不纯度的特征,避免构建过于复杂的决策树结构。
 
例如,在图像分类决策树中,使用基尼指数来选择划分特征可以避免因一些噪声特征而构建出过于复杂的决策树,从而使模型在新的图像数据上有更好的泛化能力。

 

举例说明:计算各个类别的信息增益

计算各个类别的信息增益:

  1. 计算数据集的经验熵H(D)
  2. 计算特征A下(n个类别)各个类别的加权平均熵 H ( D A i ) H(D_{Ai}) H(DAi)
  3. 计算特征A的加权熵: H ( D A ) = ∑ i = 1 n ( D A i / D ) H ( D A i ) H(D_A)=\sum_{i = 1}^{n}(D_{Ai}/D)H(D_{Ai}) H(DA)=i=1n(DAi/D)H(DAi)
  4. 求信息增益: H ( D A ) = H ( D ) − H ( A ) H(D_A)=H(D)-H(A) H(DA)=H(D)H(A)
    类别B同上,然后对比信息增益,选择大的信息增益作为分裂点

 

2.2. 叶子节点的选择

p108

 

2.3. 剪枝

采用剪枝操作防止决策树出现过拟合,可以把这种操作看成是一种对决策树采取的正则手段。

常用的剪枝有预剪枝、后剪枝操作。

预剪枝

预剪枝是指在模型训练之前给定一些限制条件,这些限制条件可以阻止节点的进一步分裂。常见预剪枝的策略有:

  1. 限制树的最大深度。如果所有叶子都已经达到最大深度,将停止训练。
  2. 限制树的最大叶子数目。如果叶子数目达到这个上限,将停止训练。
  3. 限制每片叶子上最少的样本数。为每个节点设置最小样本数阈值,如果节点的本数少于这个阈值,则停止分裂
  4. 规定分割带来训练误差下降的下限。比如,规定此下限为-0.3,那么将无视所有致训练误差下降达不到0.3的分割条件。
  5. 利用验证集进行预剪枝。如果有验证集,可在决策树的训练过程中不断用验证进行评估。如果一次分割无法降低验证集上的误差,该分割将不被进行。

预剪枝的优点是可以在树的生长过程中减少计算量,但缺点是可能会错过一些有用分裂,导致模型的表达能力不足

 

后剪枝

后剪枝是在将决策树训练好之后,从决策树的底部开始评估删除一个分割是否导致验证集误差下降。如果是,则删除该分割,即删除该分割产生的两个叶子节点,并将它的父节点重新设为叶子节点;否则,保留该分割,不断重复该步骤。

后剪枝的优点是可以灵活控制模型的复杂度,但缺点是计算量较大,因为需要在树完全生长后进行剪枝。

 
 

2.4. 决策树训练算法分类

算法名称分裂准则处理类型树的结构缺失值处理剪枝处理应用范围
ID3信息增益离散特征可以是多叉树不处理没有剪枝过程,容易过拟合分类
C4.5信息增益率连续特征可以是多叉树能处理数据集中存在缺失值的情况。它通过估算该特征对分类的贡献进行处理,而不是简单地删除缺失数据。对于有缺失值的特征,C4.5会计算每个可能的分裂点,并考虑缺失值的不同处理方式对分类结果的影响采用了一种后剪枝方法,即先完整地生长树,然后再通过悲观剪枝策略来减少树的复杂性,提高泛化能力分类
CART基尼指数离散、连续均可二叉树对于缺失值的处理采用了概率加权的方法。它通过计算缺失随机变量的预测概率,然后对每个可能的值进行加权平均使用后剪枝策略,即先生成完整的树,然后通过交叉验证来选择最优的剪枝树分类和回归

 

二. 习题

1. 归一化对决策树的影响

题目:对于一些机器学习模型(例如,神经网络),对特征进行归一化(normalization)是一个有效的预处理操作。一个常见的归一化方式是对每一个特征数据,减去该特征的均值,然后除以该特征的方差。请回答,对于基于决策树的一系列算法,归一化是否会影响训练结果?

解答:
对于基于决策树的一系列算法,归一化通常不会影响训练结果。

决策树算法在构建树的过程中主要依据特征的信息增益、基尼系数等标准来进行分裂,并不依赖于特征的绝对数值大小。它更关注的是特征之间的相对关系以及特征对分类或回归目标的区分能力
而归一化主要是改变特征的数值范围和分布,对于决策树算法来说,特征的相对大小关系和顺序通常不会因归一化而改变。

所以,对基于决策树的算法进行特征归一化一般不会对训练结果产生实质性的影响。

在这里插入图片描述

 

2. 选择决策树模型

在这里插入图片描述

在这里插入图片描述

 

3. 决策树计算

在这里插入图片描述

 
 

4. 基尼系数的优势

在这里插入图片描述

 

在这里插入图片描述

 

5. 在叶子上使用线性模型的优缺点

在这里插入图片描述

在这里插入图片描述

 

参考:《人工智能基础-姚期智》

相关文章:

【人工智能基础05】决策树模型

文章目录 一. 基础内容1. 决策树基本原理1.1. 定义1.2. 表示成条件概率 2. 决策树的训练算法2.1. 划分选择的算法信息增益(ID3 算法)信息增益比(C4.5 算法)基尼指数(CART 算法)举例说明:计算各个…...

远程桌面协助控制软件 RustDesk v1.3.3 多语言中文版

RustDesk 是一款开源的远程桌面软件,支持多平台操作,包括Windows、macOS、Linux、iOS、Android和Web。它提供端到端加密和基于角色的访问控制,确保安全性和隐私保护。使用简单,无需复杂配置,通过输入ID和密码即可快速连…...

git的学习笔记

一,git的安装 mac电脑的安装 xcode-select --install windows安装,用指令麻烦一些 随便找个视频观看看教程,去官网下载就可以了。 centos安装 sudo yum install git -y ubuntu安装 sudo apt-get install git -y 查看git安装的版本 git --ver…...

【目标检测】YOLO:深度挖掘YOLO的性能指标。

YOLO 性能指标 1、物体检测指标2、性能评估指标详解2.1 平均精度(mAP)2.2 每秒帧数(FPS)2.3 交并比(IoU)2.4 混淆矩阵(Confusion Matrix)2.5 F1-Score2.6 PR曲线(Precisi…...

第一届帕鲁杯”应急响应“解析-上部分

这个帕鲁杯是一个模拟真实生产场景的应急响应题目,这个具有拓扑网络结构,考察综合能力以及对各个系统的应急响应 网络拓扑结构图如下 相关的资产情况如下 mysql01:10.66.1.10mysql02:10.66.1.11PC01:10.66.1.12PC02…...

前端http,ws拉流播放视频

可以在西瓜播放器官网APi调试拉取的视频流是否可以播放 类似http拉流地址为&#xff1a;http://localhost:8866/live?urlrtsp://admin:admin123192.168.11.50:554/cam/realmonitor?channel1&subtype01 <!DOCTYPE html> <html><head><meta charset…...

揭开广告引擎的神秘面纱:如何在0.1秒内精准匹配用户需求?

目录 一、广告系统与广告引擎介绍 &#xff08;一&#xff09;广告系统与广告粗分 &#xff08;二&#xff09;广告引擎在广告系统中的重要性分析 二、广告引擎整体架构和工作过程 &#xff08;一&#xff09;一般概述 &#xff08;二&#xff09;核心功能架构图 三、标…...

【2024】使用Docker搭建redis sentinel哨兵模式集群全流程(包含部署、测试、错误点指正以及直接部署)

目录&#x1f4bb; 前言**Docker Compose介绍**最终实现效果 一、搭建集群1、创建文件结构2、创建redis节点3、验证节点4、创建sentinel哨兵5、验证Sentinel功能 二、spring连接1、添加依赖2、添加配置3、启动测试 三、直接部署流程1、拉取配置2、修改端口创建 前言 本篇文章主…...

Spring WebFlux与Spring MVC

Spring WebFlux 是对 Spring Boot 项目中传统 Spring MVC 部分的一种替代选择&#xff0c;主要是为了解决现代 Web 应用在高并发和低延迟场景下的性能瓶颈。 1.WebFlux 是对 Spring MVC 的替代 架构替代&#xff1a; Spring MVC 使用的是基于 Servlet 规范的阻塞式模型&#xf…...

江协科技最新OLED保姆级移植hal库

江协科技最新OLED移植到hal库保姆级步骤 源码工程存档 工程和源码下载(密码 1i8y) 原因 江协科技的开源OLED封装的非常完美, 可以满足我们日常的大部分开发, 如果可以用在hal库 ,将是如虎添翼, 为我们开发调试又增加一个新的瑞士军刀, 所以我们接下来手把手的去官网移植源码…...

Vue框架开发一个简单的购物车(Vue.js)

让我们利用所学知识来开发一个简单的购物车 &#xff08;记得暴露属性和方法&#xff01;&#xff01;&#xff01;&#xff09; 首先来看一下最基本的一个html框架 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"&…...

探索嵌入式硬件设计:揭秘智能设备的心脏

目录 引言 嵌入式系统简介 嵌入式硬件设计的组成部分 设计流程 微控制器选择 原理图设计 PCB布局 编程与调试 系统集成与测试 深入理解微控制器 存储器管理 输入/输出接口 通信接口 电源管理 硬件抽象层&#xff08;HAL&#xff09; 操作系统&#xff08;OS&am…...

逆向攻防世界CTF系列42-reverse_re3

逆向攻防世界CTF系列42-reverse_re3 参考&#xff1a;CTF-reverse-reverse_re3&#xff08;全网最详细wp&#xff0c;超4000字有效解析&#xff09;_ctfreverse题目-CSDN博客 64位无壳 _int64 __fastcall main(__int64 a1, char **a2, char **a3) {int v4; // [rsp4h] [rbp-…...

AIGC时代 | 如何从零开始学网页设计及3D编程

文章目录 一、网页设计入门1. 基础知识2. 学习平台与资源3. 示例代码&#xff1a;简单的HTMLCSSJavaScript网页 二、3D编程入门1. 基础知识2. 学习平台与资源3. 示例代码&#xff1a;简单的Unity 3D游戏 《编程真好玩&#xff1a;从零开始学网页设计及3D编程》内容简介作者简介…...

EMall实践DDD模拟电商系统总结

目录 一、事件风暴 二、系统用例 三、领域上下文 四、架构设计 &#xff08;一&#xff09;六边形架构 &#xff08;二&#xff09;系统分层 五、系统实现 &#xff08;一&#xff09;项目结构 &#xff08;二&#xff09;提交订单功能实现 &#xff08;三&#xff0…...

基于多VSG独立微网的多目标二次控制MATLAB仿真模型

“电气仔推送”获得资料&#xff08;专享优惠&#xff09; 模型简介 本文将一致性算法引入微电网的二次频率和电压控制&#xff0c;自适应调节功率参考值和补偿电压&#xff0c;同时实现频率电压恢复、有功 无功功率的比例均分以及功率振荡抑制&#xff0c;提高系统的暂态和稳…...

自动化运维(k8s)之微服务信息自动抓取:namespaceName、deploymentName等全解析

前言&#xff1a;公司云原生k8s二开工程师发了一串通用性命令用来查询以下数值&#xff0c;我想着能不能将这命令写成一个自动化脚本。 起初设计的 版本一&#xff1a;开头加一条环境变量&#xff0c;执行脚本后&#xff0c;提示输入&#xff1a;需要查询的命名空间&#xff0c…...

nginx 代理 web service 提供 soap + xml 服务

nginx 代理 web service 提供 soap xml 服务 最关键的配置: # Nginx默认反向后的端口为80&#xff0c;因此存在被代理后的端口为80的问题&#xff0c;这就导致访问出错。主要原因在Nginx的配置文件的host配置时没有设置响应的端口。Host配置只有host&#xff0c;没有对应的p…...

深入理解 MongoDB:一款灵活高效的 NoSQL 数据库

在现代应用程序开发中&#xff0c;数据存储技术已经从传统的关系型数据库&#xff08;RDBMS&#xff09;扩展到多样化的 NoSQL 数据库。MongoDB 作为一款广泛使用的文档型数据库&#xff0c;以其灵活性、高性能和易用性成为开发者的首选之一。本篇博文将从 MongoDB 的核心概念、…...

vue3 + vite + antdv 项目中自定义图标

前言&#xff1a; 去iconfont-阿里巴巴矢量图标库 下载自己需要的icon图标&#xff0c;下载格式为svg&#xff1b;项目中在存放静态资源的文件夹下 assets 创建一个存放svg格式的图片的文件夹。 步骤&#xff1a; 1、安装vite-plugin-svg-icons npm i vite-plugin-svg-icons …...

PDF版地形图矢量出现的问题

项目描述&#xff1a;已建风电场道路测绘项目&#xff0c;收集到的数据为PDF版本的地形图&#xff0c;图上标注了项目竣工时期的现状&#xff0c;之后项目对施工区域进行了复垦恢复地貌&#xff0c;现阶段需要准确的知道实际复垦修复之后的道路及其它临时用地的面积 解决方法&…...

JavaScript 高级教程:异步编程、面向对象与性能优化

在前两篇教程中&#xff0c;我们学习了 JavaScript 的基础和进阶内容。这篇文章将带领你进入更深层次&#xff0c;学习 JavaScript 的异步编程模型、面向对象编程&#xff08;OOP&#xff09;&#xff0c;以及性能优化的技巧。这些内容对于构建复杂、流畅的前端应用至关重要。 …...

有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。-多语言

目录 C 语言实现 Python 实现 Java 实现 Js 实现 题目&#xff1a;有一个已经排好序的数组。现输入一个数&#xff0c;要求按原来的规律将它插入数组中。 程序分析&#xff1a;首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移…...

OCR实现微信截图改名

pip install paddlepaddle -i https://pypi.tuna.tsinghua.edu.cn/simple/ ──(Sat,Nov30)─┘ pip install shapely -i https://pypi.tuna.tsinghua.edu.cn/simple/ pip install paddleo…...

c++stl模板总结

stl 总结stl模板vectordequelistforward_liststl集合类set&unorder_setmap&unorder_map 自适应容器栈和队列stackqueuepriority_queue 总结stl模板 vector 1.初始化 vector具有多个重载的构造函数&#xff0c;可以在实例化vector时指定他开始时应该包含的元素个数以…...

文本生成类(机器翻译)系统评估

在机器翻译任务中常用评价指标&#xff1a;BLEU、ROGUE、METEOR、PPL。 这些指标的缺点&#xff1a;只能反应模型输出是否类似于测试文本。 BLUE&#xff08;Bilingual Evaluation Understudy&#xff09;&#xff1a;是用于评估模型生成的句子(candidate)和实际句子(referen…...

Harmony NEXT-越过相机读写权限上传图片至项目云存储中

问题成因 在制作用户注册登录界面时想要实现用户头像上传共能&#xff0c;查询API文档&#xff0c;发现有picker和PhotoAccessHelper两个包可以选择使用&#xff0c;但是在使用PhotoAccessHelper包拉起相册并读入所选的照片后将该照片传入云存储中产生报错&#xff0c;需要相册…...

C++算法练习-day53——17.电话号码的字母组合

题目来源&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 题目思路分析 题目要求我们将一个数字字符串&#xff08;每个数字对应一组字母&#xff0c;如2对应abc&#xff0c;3对应def等&#xff09;转换成所有可能的字母组合。这是一个典型的组合生成问题&#xff0c;…...

计算机网络性能

任何一个系统都可以或需要不同的指标来度量系统的优劣、状态或特性。计算机网络是综合计算机技术与通信技术的复杂系统&#xff0c;可以通过许多指标对一个计算机网络的整体或局部、全面或部分、静态或动态等不同方面的性能进行度量与评价 1、传输时延 当一个分组在输出链路发…...

MAC卸载Vmware Fusion后无法再安装解决方案

MAC卸载Vmware Fusion后无法再安装解决方案 执行脚本 sudo rm -rf /Library/Application Support/VMware/VMware Fusion sudo rm -rf /Library/Application Support/VMware/Usbarb.rules sudo rm -rf /Library/Application Support/VMware Fusion sudo rm -rf /Library/Prefe…...

windows 服务器角色

windows 服务器角色 Active Directory Rights Management Services Active Directory RightsManagement Services (AD RS)帮助保护信息&#xff0c;防止未授权使用。AD RMS 将建立用户标识&#xff0c;并为授权用户提供受保护信息的许可证。 ServicesActive Directory 联合身…...

NAT学习手册

NAT&#xff08;Network Address Translation&#xff0c;网络地址转换&#xff09;是一种在局域网&#xff08;LAN&#xff09;内部使用私有地址&#xff0c;而在连接到互联网时将这些私有地址转换为全球唯一且有效的公网地址的技术。这种技术的主要目的是解决IPv4地址空间不足…...

python -从文件夹批量提取pdf文章的第n页,并存储起来

python -从文件夹批量提取pdf文章的第n页&#xff0c;并存储起来 废话不多说&#xff0c;看下面代码 讲解一下下面代码 reader PyPDF2.PdfReader (file) 将文件转化为PdfReader 对象&#xff0c;方便使用内置方法。 first_page reader.pages[0] 提取第一页 writer PyPDF…...

RPC中定时器制作思路

定时器设计 time_event time_event 类用来封装定时时间&#xff0c;内部需要包含一个任务执行时间&#xff0c;是否重复标记、是否取消标记&#xff0c;对于重复任务&#xff0c;还需要一个重复间隔时间。以及一个回调函数&#xff0c;用来执行任务到期后需要执行的动作。 构…...

Flutter简单实现滑块验证

现在实现一个 Flutter 滑动验证组件&#xff0c;类似于许多网站和应用程序中常见的“滑动以验证”功能。它通过滑动一个滑块来完成验证操作&#xff0c;用户需要将滑块拖动到指定位置以完成验证。 前置知识点整理 StatefulWidget 在 Flutter 中&#xff0c;StatefulWidget 是…...

第33周:运动鞋识别(Tensorflow实战第五周)

目录 前言 一、前期工作 1.1 设置GPU 1.2 导入数据 1.3 查看数据 二、数据预处理 2.1 加载数据 2.2 可视化数据 2.3 再次检查数据 2.4 配置数据集 2.4.1 基本概念介绍 2.4.2 代码完成 三、构建CNN网络 四、训练模型 4.1 设置动态学习率 4.2 早停与保存最佳模型…...

C#中switch语句使用

编写一个程序&#xff0c;使用switch语句将用户输入的分数转换成等级&#xff0c;如表 private static void Main(string[] args) { Console.WriteLine("请输入分数&#xff1a;"); int score int.Parse(Console.ReadLine()); switch (score) …...

2024.11.28(作业)

思维导图 功能函数声明文件 #ifndef _FUN_H__ #define _FUN_H__ #include <myhead.h>#define MAX 50 //数组大小 #define QAZ 20 //长度和字符串大小typedef int datatype; //数据元素类型//2.1 定义顺序表类型 typedef struct {datatype data[MAX];int len; }S…...

充分统计量(Sufficient Statistic)概念与应用: 中英双语

充分统计量&#xff1a;概念与应用 在统计学中&#xff0c;充分统计量&#xff08;Sufficient Statistic&#xff09; 是一个核心概念。它是从样本中计算得出的函数&#xff0c;能够完整且无损地表征样本中与分布参数相关的信息。在参数估计中&#xff0c;充分统计量能够帮助我…...

2. STM32_中断

中断 中断是什么&#xff1a; 打断CPU执行正常的程序&#xff0c;转而处理紧急程序&#xff0c;然后返回原暂停的程序继续运行&#xff0c;就叫中断。 中断的意义&#xff1a; 中断可以高效处理紧急程序&#xff0c;不会一直占用CPU资源。如实时控制、故障处理、处理不确定…...

CAD 文件 批量转为PDF或批量打印

CAD 文件 批量转为PDF或批量打印&#xff0c;还是比较稳定的 1.需要本地安装CAD软件 2.通过 Everything 搜索工具搜索&#xff0c;DWG To PDF.pc3 &#xff0c;获取到文件目录 &#xff0c;替换到代码中&#xff0c; originalValue ACADPref.PrinterConfigPath \ r"C:…...

明明的随机数

题目描述 明明想在学校中请一些同学一起做一项问卷调查&#xff0c;为了实验的客观性&#xff0c;他先用计算机生成了N个1到1000之间的随机整数&#xff08;N≤100&#xff09;&#xff0c;对于其中重复的数字&#xff0c;只保留一个&#xff0c;把其余相同的数去掉&#xff…...

2024金盾信安杯线上赛 MISC ezpng[wp]

下载题目发现给了个password和png 图片发现损坏的 password丢随波逐流一键解 base64 给出解码的结果是 cimbar搜索发现在Github有工具 然后对附件中的图片进行小厨房xor 得到一张新图片 利用工具进行跑出答案...

C与指针。

目录 1_指针理解 1.1变量的值 1.2变量的地址 1.3指针 1.4取变量的地址 2_分析指针 2.1分析指针变量的要素 2.2根据需求定义指针变量 3_指针的使用 3.1指针对变量的读操作 3.2指针对变量的写操作 4_指针占用空间的大小与位移 4.1指针占用空间的大小 4.2指针的位移…...

使用 Selenium 和 Python 爬取腾讯新闻:从基础到实践

使用 Selenium 和 Python 爬取腾讯新闻&#xff1a;从基础到实践 在这篇博客中&#xff0c;我们将介绍如何利用 Selenium 和 Python 爬取腾讯新闻的内容&#xff0c;并将结果保存到 CSV 文件中。本教程包含以下内容&#xff1a; 项目简介依赖安装实现功能的代码实现中的关键技…...

ElasticSearch的下载和基本使用(通过apifox)

1.概述 一个开源的高扩展的分布式全文检索引擎&#xff0c;近乎实时的存储&#xff0c;检索数据 2.安装路径 Elasticsearch 7.8.0 | Elastic 安装后启动elasticsearch-7.8.0\bin里的elasticsearch.bat文件&#xff0c; 启动后就可以访问本地的es库http://localhost:9200/ …...

处理HTTP请求的两种常见方式:多个处理器(Handler)、多个处理函数(HandleFunc),两者有什么区别

一、多个处理器(Handler)、多个处理函数(HandleFunc)&#xff0c;两者的区别&#xff1a; 在Go语言中&#xff0c;处理HTTP请求的两种常见方式是使用http.Handler接口和http.HandleFunc函数。它们都用于定义如何处理HTTP请求&#xff0c;但它们之间有一些关键的区别&#xff1…...

在oracle下载jdk显示400 Bad Request Request Header Or Cookie Too Large

下载JDK17&#xff0c;官网地址&#xff1a;【https://www.oracle.com/cn/java/technologies/downloads/#jdk17-windows】 问题&#xff1a; 出现 400 Bad Request: Request Header Or Cookie Too Large 错误&#xff0c;通常是由于浏览器存储的 Cookies 或请求头过大所导致的…...

机器学习与深度学习-2-Softmax回归从零开始实现

机器学习与深度学习-2-Softmax回归从零开始实现 1 前言 内容来源于沐神的《动手学习深度学习》课程&#xff0c;本篇博客对于Softmax回归从零开始实现进行重述&#xff0c;依旧是根据Python编程的PEP8规范&#xff0c;将沐神的template代码进行简单的修改。近期有点懒散哈哈哈…...

Vue3之弹窗

文章目录 第一步、引入JS第二步、弹框 在前端开发语言Vue3&#xff0c;在管理端如何进行弹窗&#xff1f;下面根据API实现效果。 Element API文档&#xff1a; Element-plus文档 搭建环境可参考博客【 初探Vue3环境搭建与nvm使用】 第一步、引入JS <script lang"ts&…...