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

吃瓜教程Day1笔记

主要内容:

1. 什么是机器学习以及

2. 机器学习的相关数学符号,为后续内容作铺垫,并未涉及复杂的算法理论,

因此阅读本章时只需耐心梳理清楚所有概念和数学符号即可。

3. “模型评估与选择”

是在模型产出以后进行的下游工作,要想完全吸收本章内容需要读者对模型 有一些基本的认知,因此零基础的读者直接看本章会很吃力,实属正常,在此建议零基础的读者可以简单泛读本章,仅看能看懂的部分即可。(数学部分已经略过)


样本:也称为“示例”,是关于一个事件或对象的描述。因为要想让计算机能对现实生活中的事物 进行机器学习,必须先将其抽象为计算机能理解的形式,计算机最擅长做的就是进行数学运算,因此考 虑如何将其抽象为某种数学形式。

显然,线性代数中的向量就很适合,因为任何事物都可以由若干“特 征”(或称为“属性”)唯一刻画出来,而向量的各个维度即可用来描述各个特征。


样本空间:也称为“输入空间”或“属性空间”。由于样本采用的是标明各个特征取值的“特征向量” 来进行表示,根据线性代数的知识可知,有向量便会有向量所在的空间,因此称表示样本的特征向量所在 的空间为样本空间。


数据集:数据集通常用集合来表示,令集合 D = {x1, x2, ..., xm} 表示包含 m 个样本的数据集,一般 同一份数据集中的每个样本都含有相同个数的特征,假设此数据集中的每个样本都含有 d 个特征,则第 i 个样本的数学表示为 d 维向量:xi = (xi1; xi2; ...; xid),其中 xij 表示样本 xi 在第 j 个属性上的取值。


模型:机器学习的一般流程如下:首先收集若干样本(假设此时有 100 个),然后将其分为训练样本 (80 个)和测试样本(20 个),其中 80 个训练样本构成的集合称为“训练集”,20 个测试样本构成的集合 称为“测试集”,接着选用某个机器学习算法,让其在训练集上进行“学习”(或称为“训练”),然后产出 得到“模型”(或称为“学习器”),最后用测试集来测试模型的效果。执行以上流程时,表示我们已经默认 样本的背后是存在某种潜在的规律,我们称这种潜在的规律为“真相”或者“真实”。


标记:上文提到机器学习的本质就是在学习样本在某个方面的表现是否存在潜在的规律,我们称该方 面的信息为“标记”。例如在学习西瓜的好坏时,“好瓜”和“坏瓜”便是样本的标记。

根据标记的取值类型不同,可将机器学习任务分为以下两类:

• 当标记取值为离散型时,称此类任务为“分类”,例如学习西瓜是好瓜还是坏瓜、学习猫的图片是白 猫还是黑猫等。当分类的类别只有两个时,称此类任务为“二分类”,通常称其中一个为“正类”,另 一个为“反类”或“负类”;当分类的类别超过两个时,称此类任务为“多分类”。由于标记也属于样 本的一部分,通常也需要参与运算,因此也需要将其数值化,例如对于二分类任务,通常将正类记为 1,反类记为 0,即 Y = {0, 1}。这只是一般默认的做法,具体标记该如何数值化可根据具体机器学 习算法进行相应地调整,例如第 6 章的支持向量机算法则采用的是 Y = {−1, +1};

• 当标记取值为连续型时,称此类任务为“回归”,例如学习预测西瓜的成熟度、学习预测未来的房价 等。由于是连续型,因此标记的所有可能取值无法直接罗列,通常只有取值范围,回归任务的标记取 值范围通常是整个实数域 R,即 Y = R。

根据是否有用到标记信息,可将机器学习任务分为以下两类:

• 在模型训练阶段有用到标记信息时,称此类任务为“监督学习”,例如第 3 章的线性模型;

• 在模型训练阶段没用到标记信息时,称此类任务为“无监督学习”,例如第 9 章的聚类。


泛化:由于机器学习的目标是根据已知来对未知做出尽可能准确的判断,因此对未知事物判断的准确 与否才是衡量一个模型好坏的关键,我们称此为“泛化”能力。

尽管模型 fa(x) 和模型 fb(x) 对训练集学得一样好,即两个模型对训练集中每个 样本的判断都对,但是其所学到的规律是不同的。导致此现象最直接的原因是算法的不同,但是算法通常 是有限的,可穷举的,尤其是在特定任务场景下可使用的算法更是有限,因此,数据便是导致此现象的另 一重要原因,这也就是机器学习领域常说的“数据决定模型的上限,而算法则是让模型无限逼近上限”, 下面详细解释此话的含义。

先解释“数据决定模型效果的上限”,其中数据是指从数据量和特征工程两个角度考虑。从数据量的 角度来说,通常数据量越大模型效果越好,因为数据量大即表示累计的经验多,因此模型学习到的经验也 多,自然表现效果越好。

而“算法则是让模型无限逼近上限”是指当数据相关的工作已准备充分时,接下来便可用各种可适用 的算法从数据中学习其潜在的规律进而得到模型,不同的算法学习得到的模型效果自然有高低之分,效果 越好则越逼近上限,即逼近真相。


分布:此处的“分布”指的是概率论中的概率分布,通常假设样本空间服从一个未知“分布”D,而 我们收集到的每个样本都是独立地从该分布中采样得到,即“独立同分布”。通常收集到的样本越多,越 能从样本中反推出 D 的信息,即越接近真相。此假设属于机器学习中的经典假设,在后续学习机器学习 算法过程中会经常用到。


理解“假设空间”和“版本空间”

作为训练集可以有多个假设空间,且在不同的假设空间中都有可能学得能够拟合训练集的模型,我们将所 有能够拟合训练集的模型构成的集合称为“版本空间”。

归纳偏好

当选用一元线性回归算法时,学得的模型是一元一次函数,当选 用多项式回归算法时,学得的模型是一元二次函数,所以不同的机器学习算法有不同的偏好,我们称为 “归纳偏好”。

著名的“奥卡姆剃刀”原则认为“若有多个假设与观察一致,则选最简单的那个”,但是何为“简单”便见仁见智了,如果认为函数的幂次越低越简单,则此时一元线性回归算法更好,如果认为幂次越高越简单,则此时多项式回归算法更好,因此该方法其实并不“简单”,所以并不常用.

而最常用的方法则是基于模型在测试集上的表现来评判模型之间的优劣。(测试集是指由训练集之外的样本构成的集合)


模型评估选择

经验误差与过拟合

错误率:E = a / m ,其中 m 为样本个数,a 为分类错误样本个数。

精度:精度 =1-错误率。

误差:学习器的实际预测输出与样本的真实输出之间的差异。

经验误差:学习器在训练集上的误差,又称为“训练误差”。

泛化误差:学习器在新样本上的误差。

错误率和精度很容易理解,而且很明显是针对分类问题的。

误差的概念更适用于回归问题,但是,根 据“西瓜书”第 12 章的式 (12.1) 和式 (12.2) 的定义可以看出,在分类问题中也会使用误差的概念,此时 的“差异”指的是学习器的实际预测输出的类别与样本真实的类别是否一致,若一致则“差异”为 0,若 不一致则“差异”为 1,训练误差是在训练集上差异的平均值,而泛化误差则是在新样本(训练集中未出现过的样本)上差异的平均值。

过拟合是由于模型的学习能力相对于数据来说过于强大,反过来说,欠拟合是因为模型的学习能力相 对于数据来说过于低下。

评估方法

本节介绍了 3 种模型评估方法:留出法、交叉验证法、自助法。

留出法由于操作简单,因此最常用; 交叉验证法常用于对比同一算法的不同参数配置之间的效果,以及对比不同算法之间的效果;自助法常用 于集成学习(详见“西瓜书”第 8 章的 8.2 节和 8.3 节)产生基分类器。

留出法和自助法简单易懂,不再赘述,下面举例说明交叉验证法的常用方式。

交叉验证法通过多次划分数据集来评估算法性能,以减少单次划分带来的偶然性。

以3折交叉验证为例,将数据集D分层采样为3个互斥子集D1、D2、D3,依次以其中一个子集作为测试集,其余两个作为训练集,得到3组训练-测试集。

对算法L的参数配置方案a和b,分别在每组训练集上训练模型并在对应测试集上测试,得到3次测试结果的平均值Scorea和Scoreb,通过比较两者确定最优参数配置。

同理,可对比不同算法α和β的效果。交叉验证法通过多次留出法,确保所有样本至少参与一次测试,提升评估结果的置信度。

算法参数是指算法本身的一些参数(也称超参数),例如 k 近邻的近邻个数 k、支持向量机的参数 C (详见“西瓜书”第 6 章式 (6.29))。

算法配置好相应参数后进行训练,训练结束会得到一个模型,例如支持向量机最终会得到 w 和 b 的具体数值(此处不考虑核函数),这就是模型参数,模型配置好相应模型参数后即可对新样本做预测。

验证集

一般采用的是前面讲到的交叉验证法,但是交叉验证法操作起来较为复杂,实际中更多采用的是:先用留出法将数据集划分出训练集和测试集,然后再对训练集采用留出法划分出训练集和新 的测试集,称新的测试集为验证集,接着基于验证集的测试结果来调参选出最优参数配置方案,最后将验 证集合并进训练集(训练集数据量够的话也可不合并),用选出的最优参数配置在合并后的训练集上重新 训练,再用测试集来评估训练得到的模型的性能。

性能度量

指标较多,但是一般常用的只有错误率、精度、查准率、查全率、F1、ROC 和 AUC。

比较检验

为什么要做比较检验?“西瓜书”在本节开篇的两段话已经交代原由。简单来说,从统计学的角度,取 得的性能度量的值本质上仍是一个随机变量,因此并不能简单用比较大小来直接判定算法(或者模型)之 间的优劣,而需要更置信的方法来进行判定。

如果不做算法理论研究,也不需要对算法(或模型)之间的优劣给出严谨的数学分析, 本节可以暂时跳过。本节主要使用的数学知识是“统计假设检验”,该知识点在各个高校的概率论与数理统计教材上均有讲解。

相关文章:

吃瓜教程Day1笔记

主要内容: 1. 什么是机器学习以及 2. 机器学习的相关数学符号,为后续内容作铺垫,并未涉及复杂的算法理论, 因此阅读本章时只需耐心梳理清楚所有概念和数学符号即可。 3. “模型评估与选择” 是在模型产出以后进行的下游工作&…...

在 C# 中,处理 Excel 和 PDF 文件的库有很多。以下是一些比较常用的选择

读取 Excel 文件的库 NPOI 用途:可以读取和写入 .xls 和 .xlsx 文件。特点:无需安装 Microsoft Office,支持简单的 Excel 操作,如格式化、公式、图表等。 EPPlus 用途:主要用于 .xlsx 格式(Excel 2007 及以…...

IntelliJ IDEA 安装与使用完全教程:从入门到精通

一、引言 在当今竞争激烈的软件开发领域,拥有一款强大且高效的集成开发环境(IDE)是开发者的致胜法宝。IntelliJ IDEA 作为 JetBrains 公司精心打造的一款明星 IDE,凭借其丰富多样的功能、智能精准的代码提示以及高效便捷的开发工…...

SkyWalking 10.1.0 实战:从零构建全链路监控,解锁微服务性能优化新境界

文章目录 前言一、集成SkyWalking二、SkyWalking使用三、SkyWalking性能剖析四、SkyWalking 告警推送4.1 配置告警规则4.2 配置告警通知地址4.3 下发告警信息4.4 测试告警4.5 慢SQL查询 总结 前言 在传统监控系统中,我们通过进程监控和日志分析来发现系统问题&…...

1. 构建grafana(版本V11.5.1)

一、grafana官网 https://grafana.com/ 二、grafana下载位置 进入官网后点击downloads(根据自己的需求下载) 三、grafana安装(点击下载后其实官网都写了怎么安装) 注:我用的Centos,就简略的写下我的操作步…...

STM32-知识

一、Cortex-M系列双指针 Cortex-M系列的MSP与PSP有一些重要的区别,双指针是为了保证OS的安全性和稳健性。本质上,区别于用户程序使用PSP,操作系统和异常事件单独使用一个MSP指针的目的,是为了保证栈数据不会被用户程序意外访问或…...

SearchBar组件的功能与用法

文章目录 1. 概念介绍2. 使用方法3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了"Material3中的IconButton"相关的内容,本章回中将介绍SearchBar组件.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本…...

解决VsCode的 Vetur 插件has no default export Vetur问题

文章目录 前言1.问题2. 原因3. 解决其他 前言 提示: 1.问题 Cannot find module ‘ant-design-vue’. Did you mean to set the ‘moduleResolution’ option to ‘node’, or to add aliases to the ‘paths’ option? Module ‘“/xxx/xxx/xxx/xxx/xxx/src/vie…...

游戏引擎学习第96天

讨论了优化和速度问题,以便简化调试过程 节目以一个有趣的类比开始,提到就像某些高端餐厅那样,菜单上充满了听起来陌生或不太清楚的描述,需要依靠服务员进一步解释。虽然这听起来有些奇怪,但实际上,它反映…...

【项目总结】易到家家政服务平台 —— 派单调度(7)

派单调度需求分析 在抢单业务中,用户下单成功由服务人员或机构进行抢单,抢单成功服务人员上门服务,除了抢单业务系统还设计了派单业务,由系统根据用户订单的特点自动派给合适的服务人员。 流程如下: 首先获取待分配…...

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 0基础…...

Flink-DataStream API

一、什么样的数据可以用于流式传输 Flink的DataStream API 允许流式传输他们可以序列化的任何内容。Flink自己的序列化程序用于 基本类型:即字符串、长、整数、布尔值、数组复合类型:元组、POJO和Scala样例类 基本类型我们已经很熟悉了,下…...

chromium-mojo

https://chromium.googlesource.com/chromium/src//refs/heads/main/mojo/README.md 相关类:https://zhuanlan.zhihu.com/p/426069459 Core:https://source.chromium.org/chromium/chromium/src//main:mojo/core/README.md;bpv1;bpt0 embedder:https://source.chr…...

Sourcetree 安装教程(附下载链接)

一、介绍 Sourcetree是一款免费的Git桌面工具,可以简化我们与Git之间敲代码的过程,使得我们可以更快的管理代码版本。 虽然现在各大IDE都内置Git功能,但在一些没有内置Git的IDE情况下,使用Sourcetree进行Git下的代码管理是一件非…...

NIO 和 AIO 的区别?

目录 设计理念 工作模式 适用场景 性能特点 NIO(Non - blocking I/O,非阻塞 I/O)和 AIO(Asynchronous I/O,异步 I/O)都是 Java 中用于实现高效 I/O 操作的机制,它们在设计理念、工作模式、适用场景等方面存在明显区别,以下为你详细介绍: 设计理念 NIO:NIO 基于事…...

Python中10个常用的接口自动化装饰器

更多Python学习内容:ipengtao.com 装饰器(Decorators)是Python中一种强大的编程工具,它们用于修改或增强函数或方法的行为。在接口自动化测试中,装饰器可以起到简化代码、提高代码可维护性和可重用性的作用。本文将介…...

Odoo17 0.1常见的QWeb 模板语言指令的详细总结

Odoo QWeb 模板语言提供了许多指令 (directives) 来增强 HTML 模板的功能,使其能够动态地展示数据、进行条件判断、循环遍历、以及实现更复杂的逻辑。 这些指令都以 t- 开头作为属性添加到 HTML 标签上。 以下是一些常见的 Odoo QWeb 模板语言指令的详细总结&#…...

螺旋矩阵 II

螺旋矩阵 II 一、题目描述 给定一个正整数 n,请你生成一个包含 1 到 n^2 所有元素的 n x n 正方形矩阵,元素顺序按顺时针的方式进行螺旋排列。 示例 1:输入:n 3 输出:[[1,2,3],[8,9,4],[7,6,5]]示例 2:…...

Object:所有类的超类

定义:所有类的超(父)类。 Object有下面几个常用的方法: equals():比较内存地址是否指向相同getclass():获取类的信息--反射领域hashcode 散列码--根据地址生成wait -- 线程进入等待状态,让出CPU和锁notify -- 唤醒等待…...

LabVIEW 开发航天项目软件

在航天项目软件开发中,LabVIEW 凭借其图形化编程优势被广泛应用。然而,航天项目的高可靠性、高精度及复杂环境适应性要求,使得在使用 LabVIEW 开发时,有诸多关键要点需要特别关注。本文将详细分析在开发航天项目软件时需要重点注意…...

docker部署superset并连接华为MRS hive数据库

下载构建源码 这个项目实现了汉化和开箱即用,感谢大佬 GitHub - lutinglt/superset-zh: Superset 汉化, Superset 中文版 替换国内apt源 查看debian版本,不同版本替换apt源的内容不同 cat /etc/debian_version我这里是11.9版本 apt源文件sources.li…...

在 Flutter 实现下拉刷新、上拉加载更多和一键点击回到顶部的功能

在 Flutter 中,实现下拉刷新、上拉加载更多和一键点击回到顶部的功能,通常会结合使用 RefreshIndicator、ListView 和 ScrollController 来实现这些交互效果。下面分别介绍如何实现这些功能。 1. 下拉刷新 Flutter 提供了 RefreshIndicator 组件来实现…...

Linux常见命令——系统定时任务

文章目录 crontab 服务管理crontab -e :编辑crontab 定时任务crontab -l 查看crontab 任务crontab -r 删除当前用户所有的crontab 任务 crontab 服务管理 systemctl status crond该系统进程是开机自启动,并且被打开了,可以使用。 crontab -e :编辑cr…...

国产编辑器EverEdit - 书签功能介绍

1 书签 1.1 应用场景 当用户在文档中多处进行编辑时,为了方便在多个编辑位置跳转,使用书签功能可以方便记录各个位置。 1.2 使用方法 1.2.1 切换书签 设置或取消光标所在行的书签 方法1:选择主菜单查找 -> 书签 -> 切换书签 方法2&…...

【Hadoop】大数据权限管理工具Ranger2.1.0编译

目录 ​编辑一、下载 ranger源码并编译 二、报错信息 报错1 报错2 报错3 报错4 一、下载 ranger源码并编译 ranger官网 https://ranger.apache.org/download.html 由于Ranger不提供二进制安装包,故需要maven编译。安装其它依赖: yum install gcc …...

推荐算法实践:movielens数据集

MovieLens 数据集介绍 MovieLens 数据集是由明尼苏达大学的GroupLens研究小组维护的一个广泛使用的电影评分数据集,主要用于推荐系统的研究。该数据集包含用户对电影的评分、标签以及其他相关信息,是电影推荐系统开发与研究的常用数据源。 数据集版本 …...

基于 PyTorch 的树叶分类任务:从数据准备到模型训练与测试

基于 PyTorch 的树叶分类任务:从数据准备到模型训练与测试 1. 引言 在计算机视觉领域,图像分类是一个经典的任务。本文将详细介绍如何使用 PyTorch 实现一个树叶分类任务。我们将从数据准备开始,逐步构建模型、训练模型,并在测试…...

生成式语言模型技术全解析

一、引言 在人工智能领域,生成式语言模型(Generative Language Models,GLMs)无疑是近年来最为耀眼的明星。从早期的简单语言模型到如今如DeepSeek、Qwen 2.5 Max等具有强大能力的先进模型,它们在自然语言处理的各个方…...

香港中文大学 Adobe 推出 MotionCanvas:开启用户掌控的电影级图像视频创意之旅。

简介: 亮点直击 将电影镜头设计引入图像到视频的合成过程中。 推出了MotionCanvas,这是一种简化的视频合成系统,用于电影镜头设计,提供整体运动控制,以场景感知的方式联合操控相机和对象的运动。 设计了专门的运动条…...

bazel 小白理解

Bazel命令是用于构建和测试软件项目的一个强大工具,尤其适用于大规模和多语言的软件项目。对于小白来说,可以这样理解Bazel及其命令: Bazel的基本概念 构建系统:Bazel是一个构建系统,它的主要任务是自动化地编译和链…...

基于Python深度学习的【蘑菇识别】系统~卷积神经网络+TensorFlow+图像识别+人工智能

一、介绍 蘑菇识别系统,本系统使用Python作为主要开发语言,基于TensorFlow搭建卷积神经网络算法,并收集了9种常见的蘑菇种类数据集【“香菇(Agaricus)”, “毒鹅膏菌(Amanita)”, “牛肝菌&…...

基于 STM32 平台的音频特征提取与歌曲风格智能识别系统

标题:基于 STM32 平台的音频特征提取与歌曲风格智能识别系统 内容:1.摘要 摘要:本文介绍了一种基于 STM32 平台的音频特征提取与歌曲风格智能识别系统。该系统通过对音频信号进行特征提取和分析,实现了对歌曲风格的自动识别。在特征提取方面&#xff0c…...

AUTOGPT:基于GPT模型开发的实验性开源应用程序; 目标设定与分解 ;;自主思考与决策 ;;信息交互与执行

目录 AUTOGPT是一款基于GPT模型开发的实验性开源应用程序目标设定与分解自主思考与决策信息交互与执行AUTOGPT是一款基于GPT模型开发的实验性开源应用程序 目标设定与分解 自主思考与决策 信息交互与执行 AUTOGPT是一款基于GPT模型开发的实验性开源应用程序,它能让大语言模…...

DeepSeek底层揭秘——知识图谱与语料库的联邦学习架构

目录 1. 知识图谱与语料库的联邦学习架构 2. 技术要素 3. 技术难点与挑战 4. 技术路径 5. 应用场景 6. 最新研究与技术进展 7. 未来趋势 8. 实际案例 猫哥说 1. 知识图谱与语料库的联邦学习架构 (1) 定义 “知识图谱与语料库的联邦学习架构”是一种结合知识图谱&…...

MVVM设计模式

‌MVVM(Model-View-ViewModel)是一种软件设计模式,MVVM模式由三个主要部分组成: ‌Model(模型)‌:负责管理应用程序的业务逻辑和数据。它不关心UI如何展示数据,主要负责与服务器通信和数据处处…...

5.实时推荐系统的设计与实现

接下来我们将学习实时推荐系统的设计与实现。实时推荐系统需要处理大规模数据,并在用户交互时提供即时的推荐结果。这一课我们将介绍以下内容: 实时推荐系统的基本概念实时推荐系统的架构设计实时推荐系统的关键技术实践示例 1. 实时推荐系统的基本概念…...

分层解耦-ioc引入

内聚: 软件中各个功能模块内部的功能联系。 耦合: 衡量软件中各个层/模块之间的依赖、关联的程度。 软件设计原则: 高内聚低耦合。...

Docker安装常用软件说明

1.总体步骤 2.安装tomcat docker run -d -p 8080:8080 --name tomcat1 tomcat:11.0.8 访问tomcat猫首页 出现404 这是正常情况 Docker 默认采用的是 NAT 网络模式,所以会自动创建 IPtable 规则并自动开放端口,所以无需考虑防火墙问题 新版Tomcat已经…...

陶氏环面包络减速机:为工业视觉检测注入“精准动力”!

在工业4.0时代,视觉检测技术已成为智能制造的核心环节。无论是精密电子元件的检测,还是汽车零部件的质量把控,视觉检测系统都需要极高的精度、稳定性和响应速度。而这一切,离不开一颗强大的“心脏”——陶氏环面包络减速机。 一、…...

标准日本语 导学

新版标准日本语-初级 结构 初级 上 初级 下 每章结构 教学方法...

vscode怎么更新github代码

vscode怎么更新github代码 打开终端: 在 VS Code 中,使用快捷键 Ctrl (Mac 上是 Cmd) 打开终端。 导航到项目目录: 确保你当前所在的终端目录是你的项目目录。如果不是,可以使用 cd 命令导航到项目目录,例如&#xf…...

【转载】开源鸿蒙OpenHarmony社区运营报告(2025年1月)

●截至2025年1月31日,开放原子开源鸿蒙(OpenAtom OpenHarmony,简称“开源鸿蒙”或“OpenHarmony”)社区累计超过8200名贡献者,共63家成员单位,产生51.2万多个PR、2.9万多个Star、10.5万多个Fork、68个SIG。…...

Pdf手册阅读(1)--数字签名篇

原文阅读摘要 PDF支持的数字签名, 不仅仅是公私钥签名,还可以是指纹、手写、虹膜等生物识别签名。PDF签名的计算方式,可以基于字节范围进行计算,也可以基于Pdf 对象(pdf object)进行计算。 PDF文件可能包…...

【C#】任务调度的实现原理与组件应用Quartz.Net

Quartz 是一个流行的开源作业调度库,最初由 Terracotta 开发,现在由 Terracotta 的一部分 Oracle 所有。它主要用于在 Java 应用程序中调度作业的执行。Quartz 使用了一种复杂的底层算法来管理任务调度,其中包括任务触发、执行、持久化以及集…...

HTML之JavaScript函数声明

HTML之JavaScript函数声明 1. function 函数名(){}2. var 函数名 function(){}<!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1…...

如何在 Qt 中添加和使用系统托盘图标

在 Qt 中实现系统托盘图标是一个常见的需求&#xff0c;尤其是在桌面应用程序中。系统托盘图标可以让应用程序在后台运行时仍然具有可见性&#xff0c;同时避免占用过多的桌面空间。本文将详细介绍如何在 Qt 项目中添加托盘图标&#xff0c;并通过资源系统&#xff08;.qrc 文件…...

day5QT套接字通信

Widget.cpp #include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);objtimer new QTimer (this);//连接定时器的timeout信号到启动的槽函数//connect(objtimer,&…...

JVM速成=。=

JVM跨平台原理 跨平台&#xff1a;一次编译&#xff0c;到处运行 本质&#xff1a;不同操作系统上运行的JVM不一样&#xff0c;只需要把java程序编译成一份字节码文件&#xff0c;JVM执行不同的字节码文件。 Java是高级语言&#xff0c;提前编译一下&#xff08;变成字节码文件…...

操作系统中的任务调度算法

在多任务操作系统中&#xff0c;任务调度算法&#xff08;Task Scheduling Algorithm&#xff09;是决定CPU资源如何分配给进程或线程的核心机制。优秀的调度算法需要平衡响应时间、吞吐量和公平性&#xff0c;同时适应不同的应用场景。 任务调度的核心目标 CPU利用率最大化&a…...

第七节 文件与流

基本的输入输出&#xff08;iostream&#xff09; C标准库提供了一组丰富的输入/输出功能&#xff0c;C的I/O发生在流中&#xff0c;流是字节序列。如果字节流是从设备&#xff08;键盘、磁盘驱动器、网络连接等&#xff09;流向内存&#xff0c;叫做输入操作。如果字节流是从…...