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

机器学习(9)——随机森林

文章目录

  • 1. 随机森林的基本原理想
  • 2. 算法流程
    • 2.1. 数据采样(Bootstrap):
    • 2.2. 构建决策树:
    • 2.3. 聚合预测:
  • 3. 随机森林的构建过程
    • 3.1. 数据集的随机抽样
    • 3.2. 决策树的训练
    • 3.3. 树的生长
    • 3.4. 多棵树的集成
    • 3.5. 输出预测结果
  • 4. 随机森林的关键参数
  • 5. 数学原理
  • 6. 随机森林的优缺点
  • 7. 特征重要性评估
  • 8. 随机森林的应用
  • 9. 样例代码
  • 10. 如何提升随机森林的性能
  • 11. 小结

1. 随机森林的基本原理想

随机森林(Random Forest)是一种集成学习(Ensemble Learning)方法,属于监督学习的一种,广泛应用于分类和回归任务。它通过构建多个决策树(Decision Tree),并通过集成学习的思想,最终输出多个决策树的结果的平均值或多数投票结果,从而提高模型的准确性和稳定性

随机森林的核心思想是通过构建多个决策树,并结合它们的结果来进行预测。与单一的决策树相比,随机森林在处理复杂的任务时能够显著提高预测性能。它通过集成不同的弱分类器(决策树)来形成一个强分类器。

随机森林通过以下两个主要方面引入随机性:

  • 随机采样数据:对于每棵决策树,在训练时从原始数据集中进行有放回的随机抽样,这种方法称为Bootstrap抽样(Bootstrap sampling)。也就是说,每棵树使用的数据集是从原始数据中随机选择的,且有可能重复抽取某些数据点。

  • 随机选择特征:在每个决策树的每个节点,选择一个随机的特征子集来进行分裂,而不是使用所有特征。这种做法减少了不同决策树之间的相关性,增强了模型的多样性。

2. 算法流程

2.1. 数据采样(Bootstrap):

  • 从原始数据集 D D D 中有放回地抽取 n n n 个样本,生成 T T T 个子集 D 1 , D 2 , … , D T D_1,D_2,…,D_T D1,D2,,DT

2.2. 构建决策树:

  • 对每个子集 D i D_i Di,训练一棵决策树 h i h_i hi
    • 在每个节点分裂时,从 m m m 个特征中随机选择 k k k 个(通常 k = m k = \sqrt{m} k=m log ⁡ 2 ( m ) \log_2(m) log2(m))。
    • 选择最佳分裂特征和阈值(基于基尼不纯度或信息增益)。

2.3. 聚合预测:

  • 分类任务:投票(多数表决)。
  • 回归任务:平均预测值。

3. 随机森林的构建过程

构建一个随机森林的过程通常包括以下几个步骤:

3.1. 数据集的随机抽样

首先,从训练数据集中随机选取多个子集(通常是有放回的抽样),每个子集的大小与原始数据集相同(或稍小)。每个子集将用于训练一棵独立的决策树。

3.2. 决策树的训练

对于每个训练子集,构建一棵决策树。在每个节点的划分时,随机选择一个特征子集,而不是使用所有特征,从而减少不同决策树之间的相关性。

3.3. 树的生长

决策树继续生长,直到满足一定条件(例如,树的深度达到预设的最大值,或者节点的样本数小于某个阈值)为止。注意,随机森林通常不剪枝(pruning)决策树,这有助于减少偏差。

3.4. 多棵树的集成

随机森林通过集成所有决策树的预测结果来给出最终预测。对于分类任务,通常采用多数投票法;对于回归任务,通常计算各树输出的平均值。

3.5. 输出预测结果

分类任务:每棵树都会给出一个类别标签,随机森林根据多数投票的原则来确定最终的分类结果。
回归任务:每棵树给出一个连续的数值预测,随机森林通过计算这些预测的平均值来得到最终的回归结果。

4. 随机森林的关键参数

  • n_estimators:森林中树的数量。通常越大越好,但计算成本增加(默认100)。
  • max_depth:决策树的最大深度,控制树的复杂度。较小的值会减少过拟合,但可能导致欠拟合;较大的值可能导致过拟合。
  • max_features:每次分裂时考虑的最大特征数。较小的值能增加模型的随机性,提高模型的多样性。
    • 分类:sqrt(n_features)(默认)。
    • 回归:n_features / 3。
  • min_samples_split:一个节点分裂所需的最小样本数(默认2)。如果某个节点的样本数小于此值,则不会继续分裂。
  • min_samples_leaf:叶节点最少的样本数,控制树的生长(默认1)。较大的值有助于防止过拟合。
  • bootstrap:是否采用自助法(bootstrap)进行数据采样,默认是True,表示使用有放回的抽样。
  • oob_score:是否使用袋外数据(Out-of-Bag data)来评估模型的性能,默认是False。

5. 数学原理

  • Bagging的方差减少:
    设单棵树的方差为 σ 2 σ^2 σ2 T T T棵树的平均预测方差为:
    Var ( 1 T ∑ i = 1 T h i ( x ) ) = σ 2 T + ρ σ 2 ( 1 − 1 T ) \text{Var} \left( \frac{1}{T} \sum_{i=1}^{T} h_i(x) \right) = \frac{\sigma^2}{T} + \rho \sigma^2 \left( 1 - \frac{1}{T} \right) Var(T1i=1Thi(x))=Tσ2+ρσ2(1T1)
    ρ ρ ρ 为树间相关系数,随机特征选择可降低 ρ ρ ρ

  • 泛化误差上界:
    Error ≤ ρ ˉ ( 1 − s 2 ) s 2 \text{Error} \leq \frac{\bar{\rho}(1 - s^2)}{s^2} Errors2ρˉ(1s2)
    ρ ˉ \bar{\rho} ρˉ:树间平均相关性。
    s s s:单棵树的平均准确率。

6. 随机森林的优缺点

  • ✅ 优点:

    • 高准确性:通过集成降低过拟合风险。

    • 鲁棒性强:对噪声和异常值不敏感。

    • 可并行化:每棵树独立训练。

    • 特征重要性评估:基于分裂时的贡献度。

  • ❌ 缺点:

    • 计算成本高:树数量多时训练慢。

    • 解释性差:相比单棵树更难可视化。

    • 对高维稀疏数据(如文本)效果一般。

7. 特征重要性评估

  • 基于基尼重要性(Gini Importance):

    • 统计每个特征在所有树中分裂时减少的基尼不纯度总和。
  • 基于排列重要性(Permutation Importance):

    • 打乱特征值后观察模型性能下降程度。

8. 随机森林的应用

随机森林在许多领域有广泛的应用,包括但不限于:

  • 分类任务:如图像识别、垃圾邮件过滤、疾病预测、信用卡欺诈检测等。
  • 回归任务:如房价预测、股票市场分析等。
  • 特征选择:通过计算各个特征的重要性,帮助选择最具代表性的特征,进行后续建模。
  • 异常检测:通过判断某个样本与其他样本的区别,进行异常检测。

9. 样例代码

# 导入所需的库
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import classification_report, accuracy_score# 加载鸢尾花数据集
iris = load_iris()
X = iris.data  # 特征数据
y = iris.target  # 标签数据# 将数据集分为训练集和测试集,80% 用于训练,20% 用于测试
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)# 初始化随机森林分类器
rf_classifier = RandomForestClassifier(n_estimators=100, random_state=42)# 训练模型
rf_classifier.fit(X_train, y_train)# 在测试集上进行预测
y_pred = rf_classifier.predict(X_test)# 输出分类报告和准确率
print("Accuracy:", accuracy_score(y_test, y_pred))
print("\nClassification Report:\n", classification_report(y_test, y_pred))# 输出特征重要性
print("\nFeature Importance:", rf_classifier.feature_importances_)

10. 如何提升随机森林的性能

尽管随机森林已经是一种强大的机器学习算法,但在某些情况下,仍然可以通过以下方法来提升其性能:

  • 增加树的数量(n_estimators):增加树的数量可以提高模型的准确性,但也会增加计算的开销。通常,树的数量达到一定水平后,性能提升会趋于平稳。
  • 调整特征选择的数量(max_features):尝试调整在每个节点分裂时使用的特征数量,选择合适的值可以帮助提高模型的多样性和性能。
  • 通过交叉验证选择最佳超参数:使用交叉验证(cross-validation)来选择最佳的超参数,例如树的最大深度、最小样本数等。
  • 使用更多的样本(更大的数据集):如果条件允许,可以使用更多的训练样本,帮助模型捕捉到更丰富的规律。

11. 小结

随机森林通过Bagging+随机特征构建多样化的决策树群,平衡偏差与方差,适用于大多数表格数据任务。其优势在于易用性、鲁棒性和可解释性(通过特征重要性)。在实际应用中,需注意:

  • 树数量:通常100~500足够。

  • 特征子集大小:分类用 sqrt(n_features),回归用 n_features/3。

  • 避免过拟合:控制树深度(max_depth)和叶节点样本数(min_samples_leaf)。

相关文章:

机器学习(9)——随机森林

文章目录 1. 随机森林的基本原理想2. 算法流程2.1. 数据采样(Bootstrap):2.2. 构建决策树:2.3. 聚合预测: 3. 随机森林的构建过程3.1. 数据集的随机抽样3.2. 决策树的训练3.3. 树的生长3.4. 多棵树的集成3.5. 输出预测…...

(第三篇)Springcloud之Ribbon负载均衡

一、简介 1、介绍 Spring Cloud Ribbon是Netflix发布的开源项目,是基于Netflix Ribbon实现的一套客户端负载均衡的工具。主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时&…...

Linux并发与竞争:从生活例子到内核实战

Linux并发与竞争:从生活例子到内核实战 一、并发与竞争:多车道公路的交通问题 想象一条四车道的高速公路(多核CPU),所有车辆(线程/进程)都想通过同一个收费站(共享资源&#xff09…...

【金仓数据库征文】——金仓数据库:国产数据库的卓越之选

目录 一、金仓数据库的核心技术优势 (一)强大的事务处理能力 (二)高度安全 (三)全面兼容与深度适配 (四)强大的扩展性 (五)智能便捷的工具 二、电信行…...

人脸识别考勤系统实现教程:基于Face-Recognition、OpenCV与SQLite

引言 随着人工智能技术的飞速发展,人脸识别技术已广泛应用于安防、金融、教育等多个领域。本文将带领大家利用Python的face-recognition库、OpenCV和SQLite数据库,从零开始构建一个具备异常报警功能的人脸识别考勤系统。该系统能够实时检测视频流中的人…...

Golang 闭包学习

引言 在平常的 Go 语言开发中,常常需要将一段函数逻辑封装起来,异步执行、作为回调传递,甚至保持某些运行时状态。此时,闭包成为一种非常自然的编程手段。它允许我们在函数内部“记住”外部作用域中的变量,从而实现变…...

Trae+DeepSeek学习Python开发MVC框架程序笔记(四):使用sqlite验收用户名和密码

继续通过Trae向DeepSeek发问并修改程序,实现程序运行时生成数据库,用户在系统登录页面输入用户名和密码后,控制器通过模型查询用户数据库表来验证用户名和密码,验证通过后显示登录成功页面,验证失败则显示登录失败页面…...

【mdlib】0 全面介绍 mdlib - Rust 实现的 Markdown 工具集

mdlib 是由开发者 bahdotsh 创建的一个多功能 Markdown 工具集合,包含两个主要组件:一个轻量级 Markdown 解析库和一个功能完善的个人 Wiki 系统。该项目完全采用 Rust 实现,兼具高性能与跨平台特性。 核心组件 Markdown 解析库 特性&#…...

使用Django REST Framework快速开发API接口

以下是使用 Django 和 Django REST Framework (DRF) 开发 API 接口的核心步骤,涵盖模型、迁移、序列化、视图、路由等关键环节: 前言 什么是DRF? Django REST Framework(DRF) 是基于Django的一个强大且灵活的工具包&…...

Vue3项目中 npm 依赖安装 --save 与 --save-dev 的区别解析

这两个命令的区别如下: bash npm install --save types/crypto-js # 安装到 dependencies(生产依赖) npm install --save-dev types/crypto-js # 安装到 devDependencies(开发依赖) 核心区别 依赖分类不同…...

开源模型应用落地-语音合成-MegaTTS3-零样本克隆与多语言生成的突破

一、前言 在人工智能技术飞速发展的今天,文本转语音(TTS)技术正以前所未有的速度改变着人机交互的方式。近日,字节跳动与浙江大学联合推出了一款名为MegaTTS3 的开源TTS模型,再次刷新了行业对高质量语音合成的认知。作为一款轻量化设计的模型,MegaTTS3以仅0.45亿参数 的规…...

connection.cursor() 与 models.objects.filter

在 Django 中操作数据库时,connection.cursor() 和 models.objects.filter 是两种不同的方式,各有特点和适用场景: models.objects.filter (ORM 方式) 特点‌: 基于 Django 的 ORM(对象关系映射)框架&am…...

深入浅出JavaScript常见设计模式:从原理到实战(1)

深入浅出JavaScript常见设计模式:从原理到实战(1) 设计模式是一种在特定情境下解决软件设计中常见问题的通用方案或模板。在特定的开发场景中使用特定的设计模式,可以提升代码质量,增强代码可读性和可维护性,提高团队开发效率&…...

RCE学习

一、远程代码执行漏洞 1. 远程代码执行的定义 定义:远程代码执行漏洞(Remote Code Execute,简称RCE)是指程序预留了执行命令或代码的接口并被黑客利用的漏洞。广义上也包括远程命令执行(Remote Command Execute&…...

Redis安装及入门应用

应用资料:https://download.csdn.net/download/ly1h1/90685065 1.获取文件,并在该文件下执行cmd 2.输入redis-server-lucifer.exe redis.windows.conf,即可运行redis 3.安装redis客户端软件 4.安装后运行客户端软件,输入链接地址…...

【棒球运动】户外运动安全技巧·棒球1号位

以棒球运动为例,在棒球这项结合力量、速度与策略的户外运动中,安全防护是保障运动表现的核心。以下是针对棒球特点的户外安全指南,涵盖装备、环境与行为规范三大维度: 一、场景化防护装备选择 击球场景 击球手需佩戴双重防护头盔…...

卸载rpm包

昨天了解了查询rpm包的流程和命令,那么今天了解一下删除rpm包的语法,那么话不多说,来看. 1.基本语法 rpm -e RPM包的名称 注:e erase擦除 2.案例 删除firefox软件包 :rpm -e firefox 3.细节讨论 1.如果其它软件包依赖于要卸载的软件包,卸载时…...

【AI提示词】艺人顾问

提示说明 专业艺人顾问,专注于为客户提供全面的艺术、娱乐和商业咨询服务,帮助他们在竞争激烈的行业中树立品牌影响力,提升市场竞争力 提示词 # Role: 艺人顾问## Profile - language: 中文 - description: 专业艺人顾问,专注于…...

第七部分:向量数据库和索引策略

什么是矢量数据库? 简单来说,向量数据库是一种专门化的数据库,旨在优化存储和检索以高维向量形式表示的文本。 为什么这些数据库对RAG至关重要?因为向量表示能够在大规模文档库中进行高效的基于相似性的搜索,根据用户…...

26考研|数学分析:数项级数

数项级数这一章的开始,开启了新的关于“级数”这一新的概念体系的学习进程,此部分共包含四章的内容,分别为数项级数、函数项级数、幂级数以及傅里叶级数。这一章中,首先要掌握级数的相关概念与定义,重难点在于掌握判断…...

2025 年免费 Word 转 PDF 转换器有哪些?

我们列出了最好的 Word 到 PDF 转换器,以便轻松轻松地将 .doc 文件导出到 .pdf 而不会丢失原始格式。 尽管 Microsoft 365 包含一个 Word 版本,该版本可以将您正在处理的 .docx 文档无缝导出为 PDF 格式,但仍在使用旧版 Word 的人可能缺少此…...

【Spring Boot】深入解析:#{} 和 ${}

1.#{} 和 ${}的使用 1.1数据准备 1.1.1.MySQL数据准备 (1)创建数据库: CREATE DATABASE mybatis_study DEFAULT CHARACTER SET utf8mb4;(2)使用数据库 -- 使⽤数据数据 USE mybatis_study;(3&#xff…...

SpringMVC知识体系

SpringMVC 知识体系 1. SpringMVC 基础 MVC 设计模式 Model: 模型层,处理业务逻辑View: 视图层,负责界面展示Controller: 控制层,处理请求并协调模型和视图 核心组件 DispatcherServlet: 前端控制器HandlerMapping: 处理器映射Controller: …...

如何将 PDF 中的文本提取为 JSON 格式

一些 PDF 文件是“带标签”的,意味着它们包含关于文件结构的信息。这种结构作为元数据嵌入在 PDF 中,由一系列标签组成,用于标记诸如标题、段落、列表、表格和图像等元素。 这非常类似于 HTML,其中的文本包含在具有语义意义的元素…...

深度解析:基于Python的微信小程序自动化操作实现

引言 在当今数字化时代,自动化技术正在改变我们与软件交互的方式。本文将深入解析一个使用Python实现的微信小程序自动化操作脚本,该脚本能够自动识别屏幕上的特定图像并执行点击操作。这种技术在自动化测试、批量操作和效率工具开发中有着广泛的应用前…...

【网络安全】网络钓鱼的类型

1. 网络钓鱼简介 网络钓鱼是最常见的社会工程学类型之一,它是一种利用人为错误来获取私人信息、访问权限或贵重物品的操纵技术。之前,您学习了网络钓鱼是如何利用数字通信诱骗人们泄露敏感数据或部署恶意软件的。 有时,网络钓鱼攻击会伪装成…...

Python----深度学习(基于深度学习Pytroch线性回归和曲线回归)

一、引言 在当今数据驱动的时代,深度学习已成为解决复杂问题的有力工具。它广泛应用于图像识别、自然语言处理和预测分析等领域。回归分析是统计学的一种基础方法,用于描述变量之间的关系。通过回归模型,我们可以预测连续的数值输出&#xf…...

重构智能场景:艾博连携手智谱,共拓智能座舱AI应用新范式

2025年4月24日,智能座舱领域创新企业艾博连科技与国产大模型独角兽智谱,在上海国际车展艾博连会客厅签署合作协议。双方宣布将深度整合智谱在AI大模型领域的技术积淀与艾博连在汽车智能座舱场景的落地经验,共同推进下一代"有温度、懂需求…...

Streamlit从入门到精通:构建数据应用的利器

在数据科学与机器学习日益普及的今天,如何快速将模型部署为可交互的应用成为了许多数据科学家的重要任务。Streamlit,作为一个开源的Python库,专为数据科学家设计,能够帮助我们轻松构建美观且直观的Web应用。本文将从入门到精通&a…...

4.1.1 类的序列化与反序列化(XmlSerializer)

本文介绍XML序列化和反序列化操作 本例子中被序列化的类(Devices)中有一个List,其元素类型为:DigitalInputInfo. 序列化以及反序列化都很简单: 序列化:即把类的对象输出到文件中。 StreamWriter streamWriter new StreamWriter(filePath); …...

新增优惠券

文章目录 概要整体架构流程技术细节小结 概要 接口分析 一个基本的新增接口,按照Restful风格设计即可,关键是请求参数。之前表分析时已经详细介绍过这个页面及其中的字段,这里不再赘述。 需要特别注意的是,如果优惠券限定了使…...

Qt 处理 XML 数据

在 Qt 中,处理 XML 数据通常使用 Qt 提供的 QDomDocument、QXmlStreamReader 和 QXmlStreamWriter 类。这些类可以帮助你读取、修改和写入 XML 数据。 1. 使用 QDomDocument 处理 XML QDomDocument 提供了对 XML 文档的 DOM(Document Object Model&…...

STM32F407使用ESP8266实现阿里云OTA(下)

文章目录 前言一、函数分析1.get_bin()函数2.download_bin()函数3.串口1中断函数二、完整工程分析前言 从上一章中,我们已经成功连接阿里云并且成功拿到了升级包的下载地址,在本文我们将升级包下载下来并且存储到SD卡中,最终将程序写入FLASH中完成APP的跳转,至此我们的OTA…...

树型结构(知识点梳理及例题精讲)

大家好啊,这一集,我们来学习树型结构,请确保看完预习篇,再来看此篇哦 树型结构(预习课)-CSDN博客 话不多说,直接开讲 -------------------------------------------------------分割线-------…...

使用HYPRE库并行装配IJ稀疏矩阵指南: 矩阵预分配和重复利用

使用HYPRE库并行装配IJ稀疏矩阵指南 HYPRE是一个流行的并行求解器库,特别适合大规模稀疏线性系统的求解。下面介绍如何并行装配IJ格式的稀疏矩阵,包括预先分配矩阵空间和循环使用。 1. 初始化矩阵 首先需要创建并初始化一个IJ矩阵: #incl…...

win11什么都不动之后一段时间黑屏桌面无法显示,但鼠标仍可移动,得要熄屏之后才能进入的四种解决方法

现象: 1. 当时新建运行的资源管理器的任务卡了或者原本资源管理器卡了 比如:当时在文本框中输入explorer 注:explorer.exe是Windows的文件资源管理器,它用于管理Windows的图形外壳,包括桌面和文件管理 按住CtrlAltEs…...

C语言编程--15.四数之和

题目: 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复)&…...

从单机工具到协同平台:开源交互式模拟环境的技术演进之路

从单机工具到协同平台:开源交互式模拟环境的技术演进之路 一、引言:从“孤岛”到“生态”的模拟技术变革 二十年前,模拟软件如LAMMPS(分子动力学)、ANSYS(工程仿真)以单机版为主,用…...

Python函数与模块笔记

Python函数与模块笔记 目录 函数 无参函数带参函数变量作用域Lambda函数常用内置函数 模块与包 模块的定义与导入包的使用常用模块(keyword、random、sys、time) 一、函数 1. 无参函数 定义语法: def 函数名(): 代码块 return [表达式]…...

Jenkins:开启高效软件开发的魔法之门

一、Jenkins 是什么 Jenkins 是一款基于 Java 开发的开源持续集成工具,在软件开发流程中占据着举足轻重的地位。它的前身是 Hudson ,于 2004 年由 Sun 公司的 Kohsuke Kawaguchi 开发,2011 年因商标纠纷更名为 Jenkins。发展至今,…...

正则表达式学习指南

正则表达式学习指南 在编程的世界里,正则表达式(Regular Expressions,简称regex)是一门不可或缺的艺术,它赋予了开发者强大的文本处理能力,让看似复杂的字符串匹配和替换任务变得简单而高效。本文旨在为初…...

React-组件通信

1、父子组件通信 &#xff08;1&#xff09;父传子&#xff08;props 传值&#xff09; // 父组件 function App() {const name 张三return (<div className"App"><Son name{name} /></div>); }// 子组件 function Son(props) {return (<div…...

MuJoCo 机械臂 PPO 强化学习逆向运动学(IK)

视频讲解&#xff1a; MuJoCo 机械臂 PPO 强化学习逆向运动学&#xff08;IK&#xff09; 代码仓库&#xff1a;https://github.com/LitchiCheng/mujoco-learning 结合上期视频&#xff0c;我们安装了stable_baselines3和gym&#xff0c;今天用PPO尝试强化学习得到关节空间到达…...

代码随想录算法训练营第一天:数组part1

今日学习的文章链接和视频链接 ● 自己看到题目的第一想法 ● 看完代码随想录之后的想法 ● 自己实现过程中遇到哪些困难 ● 今日收获&#xff0c;记录一下自己的学习时长 状态 思路理解完成 30% 代码debug完成 60% 代码模板总结并抽象出来 100% 题目 704 二分查找 题目链接…...

C++学习:六个月从基础到就业——STL算法(二)排序与变序算法

C学习&#xff1a;六个月从基础到就业——STL算法&#xff08;二&#xff09;排序与变序算法 本文是我C学习之旅系列的第二十六篇技术文章&#xff0c;也是第二阶段"C进阶特性"的第四篇&#xff0c;主要介绍C STL算法库中的排序和变序算法。查看完整系列目录了解更多…...

JVM性能优化之年轻代参数设置

一、引言 在Java应用开发中&#xff0c;性能问题往往是最难预测却又最影响用户体验的关键因素。即便代码逻辑完美&#xff0c;若JVM&#xff08;Java虚拟机&#xff09;配置不当&#xff0c;也可能导致频繁GC停顿、内存泄漏&#xff0c;甚至引发系统崩溃。JVM性能优化并非简单…...

A*迷宫寻路

二、实验内容 以寻路问题为例实现A*算法的求解程序&#xff0c;设计两种不同的估价函数&#xff1a; 1.设置两种地图&#xff1a; 根据题意&#xff0c;用矩阵设置两个地图。 地图1&#xff1a;设置5行5列的迷宫&#xff0c;代码如下&#xff1a; 地图2&#xff1a;设置20行…...

秒出PPT推出更强版本,AI PPT工具进入新纪元!

在现代职场中&#xff0c;PPT是我们沟通和展示信息的重要工具。无论是做产品演示&#xff0c;还是准备工作汇报&#xff0c;一份精美的PPT能大大提升演示效果。然而&#xff0c;传统的PPT制作往往需要消耗大量时间&#xff0c;尤其是在排版、设计和内容调整上。如今&#xff0c…...

electron-updater实现自动更新

electron-updater 是一个专为 Electron 应用设计的自动更新工具&#xff0c;能够帮助开发者轻松实现跨平台的自动更新功能。它支持 Windows、macOS 和 Linux 系统&#xff0c;通过简单的配置即可集成到 Electron 应用中&#xff0c;自动检查应用的最新版本并在后台完成更新。el…...

Ubuntu22学习记录

Ubuntu22学习记录 虚拟机挂载共享文件夹离线安装.net core3.1离线安装mysql离线安装supervisor离线安装nginx开机自启 虚拟机挂载共享文件夹 sudo vmhgfs-fuse .host:/ /mnt/hgfs -o allow_other 挂载路径&#xff1a;/mnt/hgfs/离线安装.net core3.1 离线安装mysql 离线安装…...