学习周报3.5

news2024/12/23 9:57:01

文章目录

  • 前言
  • 文献阅读
    • 摘要
    • 介绍
    • 方法
    • 总结
  • 相关性
  • 总结


前言

本周阅读文献《Multi-step ahead probabilistic forecasting of multiple hydrological》,文献主要提出一种基于三维卷积神经网络、卷积最小门记忆神经网络和变分贝叶斯神经网络的混合深度学习模型(B-CM-C4D),实现多站多水文变量的多步提前概率预测。作者提出了一种时间序列相关性分析方法,分析上下游站点随时间变化的相关性解决到底考虑过去和未来选取多少场景进行预测的问题。深度学习神经网络层(ConvMGM)主要是改进复杂的预测模型(ConvLSTM),以提高其预测准确性并减少训练时间的问题。引入变分贝叶斯概率预测框架来量化CM-C2D模型的预测不确定性。其次,学习了相关性的基础知识,了解了三种相关系数。

This week,I read an article which proposes a new hybrid deep learning model (B-CM-C3D) based on 3-D Convolutional Neural Network, Convolutional Minimum Gate Memory Neural Network and Variational Bayesian Neural Network to obtain multi-step ahead probabilistic forecasting of multiple hydrological variables for multiple stations.A time series correlation analysis method is proposed to analyze the correlation of upstream and downstream stations over time, and to solve the problems of the number of historical scenario inputs and the number of future scenario outputs. A new deep learning neural network layer (ConvMGM) is proposed to reduce the training time of ConvLSTM.A variational Bayesian probabilistic forecasting framework is introduced to quantify the forecasting uncertainty of the CM-C3D model.Then I learn the basics of correlation and three kinds of correlation coefficients.


文献阅读

题目:Multi-step ahead probabilistic forecasting of multiple hydrological
variables for multiple stations
作者:Zhendong Zhang , Haihua Tang , Hui Qin , Bin Luo , Chao Zhou , Huayan Zhou

摘要

要想精确的模拟物理流域需要对水文预报站数量、水文变量类型、预报精度、预测周期和定量不确定性提出了更高的要求。如何同时获取多个站点的多个水文变量的多步提前概率预测是本研究要解决的关键问题。文献介绍了河流流域数字孪生的背景,分析了在此背景下水文预报面临的新问题;将水文预测的输入和输出重构为四维张量;提出一种基于三维卷积神经网络、卷积最小门记忆神经网络和变分贝叶斯神经网络的混合深度学习模型(B-CM-C3D),实现多站多水文变量的多步提前概率预测;为了验证该模型的性能,将该模型与长江流域的4种主流模型进行了比较。实验结果表明模型的预测精度和概率预测综合性能有80%优于其他对比模型。

介绍

数字孪生(DT)是指在虚拟世界中模拟真实世界的系统。河流流域数字孪生(River Basin Digital Twin,RBDT)是数字世界中对物理河流流域的映射,它能较理想地模拟物理河流流域的运行规律。RBDT有两个关键方面:外部显示和内部驱动。前者使RBDT看起来像一个物理流域,后者使RBDT按照物理流域的规律运行。在RBDT中,为了更精确地模拟物理流域,离不开高精度的预报模型、调度模型、洪水演化模型等模型。本研究重点研究RBDT背景下的水文预报,需要考虑以下4个重要方面:(1)下游站点流量受上游站点流量的影响;(2)河道内流量、水位等水文变量也相互影响;(3)水文变量多步提前预测比单步提前预测提供更多的信息(4)水文预报存在不确定性。因此,如何在RBDT背景下同时获得多站多水文变量的多步提前概率预报是本研究的目的。

水文预测方法主要分为物理过程驱动方法和数据驱动方法两大类。物理过程驱动方法基于水文原理。物理过程驱动法的优点是模型可解释性强,但缺点是需要更多的基础数据、复杂的建模、耗时的求解。数据驱动方法通常基于机器学习或深度学习等统计方法根据历史径流信息和气象相关因素对水文变量进行预测。数据驱动方法的优点是计算速度快,预测精度高;缺点是预测模型为黑箱模型,可解释性较差。常用的数据驱动方法可分为时间序列模型、机器学习或深度学习模型和多方法混合模型。近年来,深度学习模型逐渐应用于水文预测领域。长短期记忆网络(Long Short-Term Memory Network,LSTM)和卷积神经网络(convolutional Neural Network,CNN)分别擅长于时间序列处理和特征提取,因此被用于水文预测。为了克服单一预测模型的缺点,同时利用多个预测模型的优势,混合模型逐渐成为水文预测的主流方法。

现有的多步预测方法通常有两种思路。一是将单步提前预测的结果作为输入,对预测模型进行多次滚动。这样,误差累积严重,容易出现趋势总是上升或下降的情况,难以预测多步超前预测结果中的拐点。另一种方法是通过打乱时间序列数据来构建多步预测模型。这种方法没有将多个预测周期的水文变量作为一个整体来考虑,将多个单步超前预测模型进行了分离。贝叶斯推理是一种概率预测框架。当与不同的确定性预测模型相结合时,需要在原有框架思想的基础上进行公式推导,完成确定性预测模型的不确定性量化。深度学习模型的训练通常是耗时的。因此,本研究需要解决的关键问题如下:(1)如何同时获得多个站点的多个水文变量的预测结果?(2)多步提前预测如何实现全局考虑?(3)如何利用贝叶斯推理量化多站多水文变量多步提前预测结果的不确定性?(4)如何减少模型的训练时间?

本文提出了一种基于三维卷积神经网络(Conv3D)、卷积最小门记忆神经网络(ConvMGM)和变分贝叶斯神经网络(VBNN) 的概率预测混合模型,获得RBDT背景下多站多水文变量的多步提前概率预测。本研究的主要贡献如下:(1)将多站点的多个水文变量时间序列重新排列为4-D张量。(2)提出了一种新的深度学习神经网络层ConvMGM,缩短了现有卷积长短期记忆网络层的训练并提高了预测精度。(3)将Conv3D和ConvMGM相结合,形成一种新的混合深度学习模型(CM-C3D),该模型结合了Conv3D擅长挖掘特征和ConvMGM擅长处理时间序列的优点。(4)利用变分贝叶斯框架量化CM-C3D的不确定性,得到一个全新的概率预测深度学习模型(B-CM-C3D)。
流域数字孪生的背景
RBDT可以简单地理解为在数字世界中构建一个真实的河流流域。RBDT建设的两个重点是三维可视化技术和流域运行模型。前者使RBDT看起来像一个真实的河流流域,后者通过模拟河流流域的关键水文过程,使RBDT能够真正映射出真实的河流流域。预测模型、水库调度模型、流量演化模型都是流域运行模型的重要组成部分。本文研究的重点是如何模拟河道内多个关键站点水文变量的变化过程,并量化预测的不确定性。
在这里插入图片描述

RBDT原理图如图所示,其中子图(a)为物理真实流域。通常,一条真实河流会被水库、水文站等站点切割成多个河段。这些站点和河段构成了数字世界中的二维拓扑,如图子图(b)所示。每个站点都有多个关键的水文变量,如水位(Z)、径流®和降水§。通过考虑水文变量,二维结构变成了三维场景,如图子图©所示。同时,这些水文元素大多是时间序列,因此,完整的RBDT是一个四维时间序列场景,如图(d)所示。
利用历史4-D时间序列场景预测未来4-D时间序列场景。本研究需要解决的具体问题如下:
(1)如何构建具有4-D输入和4-D输出的预测模型?
(2)有多少过去的情景适合预测。如果过去3-D场景数量过少,预测精度会过低,如果数量过大,模型训练会非常耗时。
(3)预测未来最多有多少个3-D场景是合适的。如果预测的未来场景数量过多,精度就会降低。
(4)如何改进如此复杂的预测模型,提高其预测精度,减少训练时间?
(5)没有一个模型可以完美预测,总是存在不确定性。如何获取4-D场景的概率密度函数(probability density function, PDF)是该研究要解决的关键问题。

方法

时间序列相关性分析
皮尔逊相关系数(PCC)和最大信息系数(MIC)是常用的相关性分析方法。它们通常同时分析两组变量,但如果两组变量之间存在时间滞后,则会影响分析结果。当洪水在河道中从上游流向下游时,上游的径流与下游的径流是相关的。同时,考虑到水流速度的影响,上游洪峰向下游传播需要一段时间。如果同时利用上游站和下游站的径流过程来计算相关系数,结果会较小,因此,本文提出了一种时间序列相关分析(time series correlation analysis, TSCA)方法来分析水文过程与时间滞后的相关性。前t步PCC和MIC的计算公式如下:
在这里插入图片描述
PCCt和MICt分别提前T步的PCC和MIC。X1 ~ (T−T +1)表示从1到T−T +1索引的自变量样本,Yt~ T表示从T到T索引的因变量样本。X1 ~ (T−T +1)和Yt~ T是样本均值。D是一个集合为[X1 ~ (T−T +1),Yt~ T]的序对。对于网格G, D|G是数据D在G单元上诱导的概率分布。I(D|G)表示相互信息。函数B(n) = n0.6和|D|是数据D的大小,T是样本总数。符号t表示时滞,其范围在[0,t−2]内。
在这里插入图片描述

TSCA的目的是寻找相关系数最大的滞后,即tmax。设t从0变为t−2,依次计算相应的PCCt和MICt。然后找出最大的PCCt和MICt对应的t为tmax。在上图的子图©中,从上游到下游分别显示了上游站与上游站、上游站与中游站、上游站与下游站径流过程的时间序列相关系数雷达图。雷达图中带颜色的实线表示步进0到N对应的相关系数,红色虚线表示相关系数最大对应的步进数。越靠近雷达图中心,相关系数越小,反之亦然。对于上游站本身,PCC0最大,所以tmax = 0。tmax 中游站和下游站的分别为2和4。上游站和下游站距离越远,滞后时间越长,tmax。
TSCA不仅有利于探索上下游站点之间的相关性,也有助于解决提出的(2)和(3)问题。t值max 可以指导多水文变量多步提前概率预测模型的输入和输出使用多少3-D情景。由于对应于tmax 是最大的,不建议最长的预测周期超过tmax。同时,用于预测输入的历史3-D情景数量应大于tmax。如果训练模型的计算机性能更好,可以考虑更多的历史场景输入,3到4倍的t值max。如果计算机性能相对平均,则输入个数大于t的预测结果max 或者是t的两倍大max 是可以接受的。在本研究中,建议使用历史场景数量为t值的两到三倍max 作为预测模型的输入,且场景数等于tmax 为预测输出。
卷积最小门内存神经网络 (ConvMGM)
LSTM擅长处理序列数据,CNN擅长挖掘输入中的特征。卷积长短期记忆神经网络融合了两者的优点。卷积门控循环单元神经网络(Convolutional Gated Recurrent Unit Neural Network,ConvGRU)将ConvLSTM中三个门(输入门、遗忘门、输出门)的结构缩减为两个门的结构(重置门、更新门),在不降低预测精度的情况下减少了训练时间。本文提出了卷积最小门记忆神经网络(convolution Minimum Gate Memory Neural Network,简称conmgm),将门结构的数目减少到一种。大大减少了模型参数和训练时间,提高了预测精度。ConvMGM的网络结构如图所示。
在这里插入图片描述
前向传播公式:
在这里插入图片描述基于ConvMGM和Conv3D的情景预测模型(CM-C3D)
Conv3D是一个三维卷积神经网络,ConvMGM具有时间记忆功能,Conv3D擅长挖掘特征输入中的关系,两者都有利于水文情景预报。ConvMGM 图层 (CM) 与 Conv3D 图层 (C3D) 具有相同的输入和输出格式。因此,将这两种类型的层组合为隐藏层的一部分,形成了一种新的混合深度学习模型(CM-C3D)。CM-C3D模型是一种确定性预测模型,无法量化预测的不确定性。CM-C3D模型的输入和输出形状均为4D。
变分贝叶斯概率预测框架
概率神经网络与确定性神经网络的不同之处在于,它们的权重变量服从概率分布而不是确定性的单一值。这些概率分布描述了权重的不确定性,因此可用于量化预测不确定性。
变分贝叶斯情景概率预测模型 (B-CM-C3D)
本研究结合ConvMGM、Conv3D和VBNN构建了一种新的混合深度学习模型(B-CM-C3D)用于水文概率预测。B-CM-C3D模型有一个输入层,五个隐藏层(两个ConvMGM层,两个Conv3D层,一个VBNN层)和一个输出层。输入形状为(TxMxQxW)以及变量的含义(T,M,Q,A) 与上述相同。前两个隐藏层是 ConvMGM 层,分别称为 CM-1 层和 CM-2 层。第三层和第四个隐藏层是 Conv3D 层,分别称为 C3D-1 层和 C3D-2 层。第五个隐藏层是VBNN层,通过该层可以将确定性预测结果转换为概率预测结果。最后一层是输出层。
评估指标
在这项研究中,包括决定系数(R2),平均绝对误差(MAE),最大绝对误差(MaxAE),最小绝对误差(MinAE),对应于最大值的绝对误差(MaxValueAE)和对应于最小值的绝对误差(MinValueAE)用于评估确定性预测结果的准确性。R2越近为1,预测精度越高。MAE、MaxAE、MinAE、MaxValueAE和MinValueAE越小,预测精度越高。其计算公式如下:
在这里插入图片描述

总结

本研究侧重于RBDT背景下多个水文变量的多步超前概率预测。然后提出了需要详细解决的五个关键问题。提出一种时间序列相关性分析方法,分析上下游站点随时间变化的相关性。其次,提出一种新的深度学习神经网络层(ConvMGM)来减少ConvLSTM的训练时间。此外,将ConvMGM和Conv2D组合成一个新的混合深度学习模型(CM-C3D)进行预测,引入变分贝叶斯概率预测框架来量化CM-C2D模型的预测不确定性。最后,以长江流域为例验证了本研究所提模型的性能,主要结论:
(1)本研究提出的B-CM-C3D模型在确定性预测精度和概率预测综合性能方面优于其他对比模型。
(2)B-CM-C3D将训练时间缩短了约43%。

相关性

相关分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个因素的的相关密切程度,相关性的元素之间需要存在一定的联系或者概率才可以进行相关性分析。

相关系数:考察两个变量之间的相关程度。一般用字母r 表示,用来度量两个变量间的线性关系。

怎么确定相关关系的存在,相关关系呈现的形态和方向,相关关系的密切程度。其主要方法是绘制相关图表和计算相关系数。

第一种相关分析方法是将数据进行可视化处理,简单的说就是绘制图表。单纯从数据的角度很难发现其中的趋势和联系,而将数据点绘制成图表后趋势和联系就会变的清晰起来。

1.相关图(折线图及散点图)
利用直角坐标系第一象限,把自变量置于横轴上,因变量置于纵轴上,而将两变量相对应的变量值用坐标点形式描绘出来,用以表明相关点分布状况的图形。相关图被形象地称为相关散点图。因素标志分了组,结果标志表现为组平均数,所绘制的相关图就是一条折线,这种折线又叫相关曲线。
2.相关表
编制相关表前首先要通过实际调查取得一系列成对的标志值资料作为相关分析的原始数据。
相关表的分类:简单相关表和分组相关表。单变量分组相关表:自变量分组并计算次数,而对应的因变量不分组,只计算其平均值;该表特点:使冗长的资料简化,能够更清晰地反映出两变量之间相关关系。双变量分组相关表:自变量和因变量都进行分组而制成的相关表,这种表形似棋盘,故又称棋盘式相关表。
3.相关系数
1、相关系数是按积差方法计算,同样以两变量与各自平均值的离差为基础,通过两个离差相乘来反映两变量之间相关程度;着重研究线性的单相关系数。
2、确定相关关系的数学表达式。
3、确定因变量估计值误差的程度。

在进行相关分析时,首先需要绘制散点图来判断变量之间的关系形态,如果是线性关系,则可以利用相关系数来测度两个变量之间的关系强度,然后对相关系数进行显著性检验,以判断样本所反映的关系是否代表两个变量总体上的关系。

根据散点图,当自变量取某一值时,因变量对应为一概率分布,如果对于所有的自变量取值的概率分布都相同,则说明因变量和自变量是没有相关关系的。反之,如果,自变量的取值不同,因变量的分布也不同,则说明两者是存在相关关系的。
通过散点图可以判断两个变量之间有无相关关系,并对变量之间的关系形态作出大致的描述,但散点图不能准确反映变量之间的关系强度。因此,为准确度量两个变量之间的关系强度,需要计算相关系数。

相关系数(correlation coefficient)是根据样本数据计算的度量两个变量之间线性关系强度的统计量。

若相关系数是根据总体全部数据计算的,称为总体相关系数,记为:ρ

若是根据样本数据计算的,则称为样本相关系数,记为:r

样本相关系数的计算公式为:
在这里插入图片描述
按上述公式计算的相关系数也称为线性相关系数(Linear Correlation Coefficient),或称为 Pearson 相关系数(Pearson’s Correlation Coefficient)
Pearson相关系数
Pearson相关系数(Pearson CorrelationCoefficient)是用来衡量两个数据集合是否在一条线上面,它用来衡量定距变量间的线性关系。
当两个变量都是正态连续变量,而且两者之间呈线性关系时,表现这两个变量之间相关程度用积差相关系数,主要有Pearson简单相关系数。
Pearson积差相关系数对应的计算公式如下:

在这里插入图片描述

Spearman相关系数
在统计学中, 以查尔斯·斯皮尔曼命名的斯皮尔曼等级相关系数,即spearman相关系数。经常用希腊字母ρ表示。 它是衡量两个变量的依赖性的 非参数 指标。 它利用单调方程评价两个统计变量的相关性。 如果数据中没有重复值, 并且当两个变量完全单调相关时,斯皮尔曼相关系数则为+1或−1。
斯皮尔曼相关系数被定义成等级变量之间的皮尔逊相关系数。对于样本容量为n的样本,n个原始数据被转换成等级数据,相关系数ρ为:
在这里插入图片描述Kendall秩相关系数
Kendall(肯德尔)系数的定义:n个同类的统计对象按特定属性排序,其他属性通常是乱序的。同序对(concordant pairs)和异序对(discordant pairs)之差与总对数(n*(n-1)/2)的比值定义为Kendall(肯德尔)系数。
定义了Kendall-tau系数:
在这里插入图片描述

其中n是项目数,P是在所有项目中,在给定项目之后按两个排名排列的项目数之和。


总结

相关系数衡量变量之间相关程度的一个量值相关系数r的数值范围是在-1到+1之间,相关系数r的正负号表示变化方向。“+”号表示变化方向一致,即正相关;“-”号表示变化方向相反,即负相关。r的绝对值表示变量之间的密切程度(即强度)。绝对值越接近1,表示两个变量之间关系越密切;越接近0,表示两个变量之间关系越不密切。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/390570.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【博学谷学习记录】超强总结,用心分享|狂野大数据课程【Spark SQL函数定义】的总结分析

5.1 如何使用窗口函数 回顾: 窗口函数格式:分析函数 over(partition by xxx order by xxx [asc|desc] [rows between xxx and xxx])学习的相关分析函数有那些? 第一类: row_number() rank() dense_rank() ntile()第二类: 和聚合函数组合使用 sum() avg() max() min() count…

西电软件体系结构核心考点汇总(期末真题+核心考点)

文章目录前言一、历年真题二、核心考点汇总2.1 什么是软件体系架构?(软件体系结构的定义)2.2 架构风格优缺点2.3 质量属性2.4 质量评估前言 主要针对西安电子科技大学《软件体系结构》的核心考点进行汇总。 【期末期间总结资料如下】 针对西电计科院软件工程专业大三《软件体…

【QT】使用QML构建一个简易的计算器界面(三)

前面两篇对计算器界面的布局和显示以及实现功能做了相关优化,但是对输入显示那一块还没有具体的处理步骤,包括对输入表达式的合法性检查,显示框的多行历史显示等功能还需要添加,接下来将从这几个方面对这些功能进行添加。 1、对输…

概率论 1.3 古典概型与几何概型

1.3.1 排列与组合排列从n个不同元素任取r(r<n)个元素排成一列(考虑元素出现的先后次序)&#xff0c;称此为一个排列&#xff0c;此种排列的总数为n(n-1)....(n-r1)n!/(n-r)&#xff01;&#xff0c;若rn,则称为全排列&#xff0c;2.重复排列从n个不同元素中每次取出一个,放回…

GPIO输入和输出以及八种工作模式

一.GPIO的简介 GPIO &#xff08;general purpose input output&#xff09;是通用输入输出端口的简称&#xff0c;简单来说就是软件可控制的引脚&#xff0c;STM32芯片的GPIO引脚与外部传感器连接起来&#xff0c;从而实现与外部通讯、控制以及数据采集的功能。 1.引脚全是GP…

[2.1.1]进程管理——进程的概念、组成、特征

文章目录第二章 进程管理进程的概念、组成、特征&#xff08;一&#xff09;进程的概念&#xff08;二&#xff09;进程的组成——PCB&#xff08;三&#xff09;进程的组成——程序段、数据段补充&#xff1a;程序是如何运行的&#xff1f;&#xff08;四&#xff09;进程的特…

vue3 插槽使用详解

目录1 前言2 插槽的使用2.1 基本使用2.2 具名插槽2.3 动态插槽名2.4 插槽传值3 总结1 前言 Vue 实现了一套内容分发的 API&#xff0c;将 <slot> 元素作为承载分发内容的出口&#xff0c;使用插槽使得vue组件的设计更加灵活。 在vue版本更迭中&#xff0c;尽管插槽的使…

常用的设计模式之一(创建型模式)

设计模式可分为三大类&#xff1a; 创建型模式 (Creational Patterns)结构性模式 (Structural Patterns)行为型模式 (Behavioral Patterns) 模式描述包括创建型模式工厂模式&#xff08;Factory Pattern&#xff09; 抽象工厂模式&#xff08;Abstract Factory Pattern&#…

并发编程——可见性与有序性

如果有兴趣了解更多相关内容&#xff0c;欢迎来我的个人网站看看&#xff1a;耶瞳空间 JMM即Java Memory Model&#xff0c;它定义了主存、工作内存抽象概念&#xff0c;底层对应着CPU寄存器、缓存、硬件内存、CPU指令优化等。JMM体现在以下几个方面&#xff1a; 原子性&…

Web API

DOM API 1、选中页面元素 let elem document.querySelector(CSS选择器); console.log(elem); console.dir(elem); 2、事件 鼠标点击事件 onclick 鼠标移动事件 onmousemove 等等 事件源 .box&#xff0c;事件类型 onlick&#xff0c;事件处理方式 alert(hello) let d…

[Mybatis1]介绍与快速入门

文章目录 Mybatis概述 持久层 框架 Mybatis与JDBC对比 JDBC代码的缺陷 Mybatis简化JDBC Mybatis快速入门案例 整体案例项目结构 1.创建user表&#xff0c;添加数据 2.创建Maven项目&#xff0c;导入坐标 3.编写Mybatis核心配置文件 4.编写数据库返回对象的实体类 5. 编写S…

QML Button详解

1.Button简介 Button表示用户可以按下或单击的按钮控件。按钮通常用于执行一个动作&#xff0c;或回答一个问题。典型的按钮有确定、应用、取消、关闭、是、否和帮助。 Button继承自AbstractButton&#xff0c;提供了以下几种信号。 void canceled() //当按…

Python笔记 -- 列表

文章目录1、列表简介2、修改、添加、删除元素2.1、添加2.2、删除3、排序、倒序4、遍历列表5、创建数值列表6、列表切片7、列表复制8、元组1、列表简介 在Python中用方括号[]表示列表&#xff0c;用逗号隔开表示其元素 通过索引访问列表 names [aa,bb,cc,dd]print(names[0]) …

游戏项目中的程序化生成(PCG):算法之外的问题与问题

本篇讨论的是什么 从概念上讲&#xff0c;PCG&#xff08;程序化生成&#xff09;的含义很广&#xff1a;任何通过规则计算得到的内容&#xff0c;都可算作是PCG。但在很多游戏项目的资料&#xff0c;包括本篇&#xff0c;讨论PCG时特指是&#xff1a;用一些算法/工具(特别是H…

C语言-基础了解-13-C enum枚举

C enum枚举 一、C枚举 枚举是 C 语言中的一种基本数据类型&#xff0c;用于定义一组具有离散值的常量。&#xff0c;它可以让数据更简洁&#xff0c;更易读。 枚举类型通常用于为程序中的一组相关的常量取名字&#xff0c;以便于程序的可读性和维护性。 定义一个枚举类型&a…

3.2 LED闪烁流水灯蜂鸣器

LED闪烁1.1 电路连接示意图LED采用低电平点亮的方式&#xff0c;利用ST-Link的3.3V进行供电。1.2程序设计1.21知识储备GPIO配置步骤步骤&#xff1a;1. 第⼀步&#xff0c;使⽤RCC开启GPIO的时钟2. 第⼆步&#xff0c;使⽤GPIO_Init()函数初始化GPIO3. 第三步&#xff0c;使⽤输…

JavaWeb--会话技术

会话技术1 会话跟踪技术的概述2 Cookie2.1 Cookie的基本使用2.2 Cookie的原理分析2.3 Cookie的使用细节2.3.1 Cookie的存活时间2.3.2 Cookie存储中文3 Session3.1 Session的基本使用3.2 Session的原理分析3.3 Session的使用细节3.3.1 Session钝化与活化3.3.2 Session销毁目标 理…

java坦克大战(1.0)

坦克大战 后面开始学习怎么使用java制造一个坦克大战游戏 但是不是直接开始做&#xff0c;而是随着这个游戏程序的制造&#xff0c;一边学习新知识融入到游戏中。包括多线程&#xff0c;反射&#xff0c;IO流… Java坐标体系 在几乎所有的坐标中都有一个x轴和y轴&#xff0c…

大数据项目实战之数据仓库:用户行为采集平台——第1章 数据仓库概念

第1章 数据仓库概念 数据仓库&#xff08;Data Warehouse&#xff09;&#xff0c;是为企业制定决策&#xff0c;提供数据支持的。可以帮助企业改进业务流程、提高产品质量等。 数据仓库的输入数据通常包括&#xff1a;业务数据、用户行为数据和爬虫数据等 业务数据&#xf…

Java - 对象的比较

一、问题提出 前面讲了优先级队列&#xff0c;优先级队列在插入元素时有个要求&#xff1a;插入的元素不能是null或者元素之间必须要能够进行比较&#xff0c;为了简单起见&#xff0c;我们只是插入了Integer类型&#xff0c; 那优先级队列中能否插入自定义类型对象呢&#xf…