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

国家调控油价预测案例+源码

项目git地址:https://github.com/Boris-2021/Oil-price-control-forecast

使用已知的历史数据:日期、汇率、布伦特、WTI、阿曼原油价格,预测下一个调价周期中的汽油、柴油零售限价的调价价格。

一. 需求

1.1 需求说明

使用已知的历史数据:日期、汇率、布伦特、WTI、阿曼原油价格,预测下一个调价周期中的汽油、柴油零售限价的调价价格。

1.2 数据说明

原始数据中包含字段为。日期、汇率、布伦特、WTI、阿曼原油价格、汽油、柴油零售限价的调价价格、税率。其中汇率、布伦特、WTI、阿曼原油价格、为输入已知条件数据。汽油、柴油零售限价的调价价格为输出未知变量。

除日期字段其他都是数字类型可统一(float),税率列在算法开发过程没有被使用。

1.3 特别注意

如图绿框中的数据,表示上一个十天的周期,所带来的调价一般在下一个周期的第二天出现。中间隔了一天这一天的限价还沿用上个周期的数据。
在这里插入图片描述

二.数据分析

数据分析适当的统计分析方法对收集来的数据初步的认识,提取有用信息和形成结论而对数据加以详细研究和概括总结。使用初步的数据认识和结论进一步规划数学建模的方法,达到为建模提供思路和提高建模效率。

2.1 可视化

在这里插入图片描述

我们选取2022年1月到十月的输入数据绘制折线图。

从图中我们可以看出:

1、三种原油价格变化相似性比较高。基本保持比较一致的波动。

2、汽油柴油的价格变化相似性也比较高。基本保持比较一致的波动。

3、四个输入字段对比汽油柴油数据来看,三种原油的价格波动于目标输出有想似的趋势走向关系,有直接的因果关系。而汇率字段的数据在趋势上看没有直接的趋势因果关系。

在这里插入图片描述

上图我们以汽油调价做Y周,四种输入字段分别做X轴绘制散点图,查看分布情况。可以看出。

1,汽油调价和三种原油呈现一定的线性分布关系,基本山随着原油价格的提高,调价也会提高。3者分布中WT离散程度最高。阿曼最低。

2,汽油调价和汇率散点图中的线性关系不明确,有一些分散,但是汇率高的时候一般汽油调价不会底。

2.2 相关性

相关性分析是指对两个或多个具备相关性的变量元素进行分析,从而衡量两个变量因素的相关密切程度。

在这里插入图片描述

pearson相关系数衡量的是线性相关关系。若r=0,只能说x与y之间无线性相关关系,不能说无相关关系。相关系数的绝对值越大,相关性越强:相关系数越接近于1或-1,相关度越强,相关系数越接近于0,相关度越弱。

在这里插入图片描述

计算相关性系数,绘制热力图记录相关性数据,三原油价格和汽油调价价格相关性都大于0.7,属于强相关因素。汇率小于0.5直接相关性比较弱。

由于汇率并不直接作用于调价数据。我们尝试将汇率乘进原油价格,比较乘积数据的相关性。

在这里插入图片描述

计算相关性,绘制热力图,发现汇率乘进原油价格后与零售价格调整之间的相关性系数变大。可见汇率*原油价格的数据更直接影响价格的调整。

基于以上数据认知我们进行建模的初试。

三. 算法模型初探

3.1 线性模型

3.1.1 Lr线性回归模型

(这节主要描述线性回归模型原理内容,只关注使用可忽略此章节)

回归分析是指一种预测性的建模技术,主要是研究自变量和因变量的关系。通常使用线/曲线来拟合数据点,计算出参数使曲线到数据点的距离差异最小。

假设目标值(因变量)与特征值(自变量)之间线性相关(即满足一个多元一次方程,如:f(x)=w1x1+…+wnxn+b.)。

然后构建损失函数。

最后通过令损失函数最小来确定参数。(最关键的一步)

那么因变量中的参数是如何通过算法确定的呢:这里使用正规方程解的方式说明。

正规方程一般用在多元线性回归中,原因等你看完也就能理解为什么。所以这里不再用一元线性回归举栗子了。

同样,假设有n组数据,其中目标值(因变量)与特征值(自变量)之间的关系为:

在这里插入图片描述

其中i表示第i组数据,这里先直接给出正规方程的公式:

在这里插入图片描述

损失函数为:

在这里插入图片描述

对损失函数求导并令其为0,有

在这里插入图片描述

到此,就求出了所有系数θ。

3.1.2 Lr模型初试

输入:汇率+3种原油价格、

只选取调价日当天的数据(2022.1-2022.10)19条、 训练集前14条数据,验证在后5条数据。

在这里插入图片描述

结论:1,R2指标0.41, 2,后5条数据拟合情况很差, 3,在训练数据集种的数据拟合很好平均差值100左右,验证数据平均差值大于500。

输入: 选用特征:3种原油价格+原油价格*汇率、

只选取调价日的数据19条数据、 训练集前15条数据,验证在后4条数据。

在这里插入图片描述

结论:1,R2指标0.88、2,后4条数据拟合情况一般、3,后四条数据预测和真实情况差距在300以内

发现模型预测的数据和真实数据还是有一定的距离,而后四条测试的数据,在验证涨跌这一块有一些问题(后四次数据展示出一次涨,三次跌)预测的数据预只测对了两次跌的情况。

3.2 决策树模型

3.2.1 决策树回归模型

(这节主要描述决策树回归模型原理内容,只关注使用可忽略此章节)

决策树是一种非常基础又常见的机器学习模型。

一棵决策树(Decision Tree)是一个树结构(可以是二叉树或非二叉树),每个非叶节点对应一个特征,该节点的每个分支代表这个特征的一个取值,而每个叶节点存放一个类别或一个回归函数。

使用决策树进行决策的过程就是从根节点开始,提取出待分类项中相应的特征,按照其值选择输出分支,依次向下,直到到达叶子节点,将叶子节点存放的类别或者回归函数的运算结果作为输出(决策)结果。

在这里插入图片描述

上图是后边拟合残差形成的决策树图,后边会对图进行解释说明。

简单讲,有以下几步可训练得到一个决策树:

准备若干的训练数据(假设有 m 个样本);

标明每个样本预期的类别;(本数据中为调价结果)

人为选取一些特征(即决策条件:本数据中为输入指标);

为每个训练样本对应所有需要的特征生成相应值——数值化特征;

将通过上面的1-4步获得的训练数据输入给训练算法,训练算法通过一定的原则,决定各个特征的重要性程度,然后按照决策重要性从高到底,生成决策树。

这里边要理解一个决定特征重要程度是如何计算的:决策树的构造过程是一个迭代的过程。每次迭代中,采用不同特征作为分裂点,来将样本数据划分成不同的类别。被用作分裂点的特征叫做分裂特征。选择分裂特征的目标,是让各个分裂子集尽可能地“纯”,即尽量让一个分裂子集中的样本都属于同一类别。如何使得各个分裂子集“纯”,算法也有多种,这里以ID3为例。

该算法的核心是:以信息增益为度量,选择分裂后信息增益最大的特征进行分裂。

首先我们要了解一个概念——信息熵。

假设一个随机变量 x 有 n 种取值,分别为 {x1,x1,…,xn},每一种取值取到的概率分别是 {p1,p2,…,pn},那么 x 的信息熵定义为:

Entropy(x)=−∑ni=1pilog2(pi)

熵表示的是信息的混乱程度,信息越混乱,熵值越大。

设 S 为全部样本的集合,全部的样本一共分为 n 个类,则:

Entropy(S)=−∑ni=1pilog2(pi)

其中,pi 为属于第 i 个类别的样本,在总样本中出现的概率。

接下来要了解的概念是信息增益,信息增益的公式为(下式表达的是样本集合 S 基于特征 T 进行分裂后所获取的信息增益):

InformationGain(T)=Entropy(S)−∑value(T)|Sv||S|Entropy(Sv)

其中:

S 为全部样本集合,|S|为S 的样本数;T为样本的一个特征;value(T) 是特征 T 所有取值的集合;v 是 T 的一个特征值;Sv 是 S 中特征 T 的值为 v 的样本的集合,|Sv|为Sv 的样本数。

(这节主要描述决策树回归模型原理内容,只关注使用可忽略此章节)

3.2.2 决策树模型初试

输入: 选用特征:3种原油价格+原油价格*汇率+前一次价格、

只选取调价日的数据19条数据、 训练集前15条数据,验证在后4条数据。

在这里插入图片描述

结论:1,R2指标0.96、2,后4条数据拟合情况一般、3,后四条数据预测和真实情况差距在300以内、4、在验证涨跌趋势这一块有提升

决策树模型的稳定性比较差,经过多次测试,有很多次结果都不是一致的。所以还是以线性回归模型做基准模型。

3.2.3 XGB集成学习模型

这个模型的尝试效果不佳暂不展开说明了。

四. 特征分析

在上边的算法模型初探中,我们的输入都是调价日当天的,也就是每个十天的周期只选择了一天的数据,2022.1-2022.10有19个十天周期挑选出了19条数据。这样没有使用上10天的综合数据。

特征分析目的在于对输入做处理,通过分析不同的输入特征方式,来改善模型的效果。

4.1 不同特征组合对比

4.1.1 每组中十天的数据做输入

在这里插入图片描述

如图所示:将每个十天周期中的第1天到10天的原油汇率乘积与本周期的调价结果放同一行。

在这里插入图片描述

通过相关性热力图(布伦特十天数据为例)可以看出,调价和前8天数据的相关性都比调价日的高,所以使用更多强相关的输入,会提升线型模型的效果。

使用10天的数据做输入,调价做输出训练模型。

输入: 所有特征前十天数据

只选取调价日的数据19条数据、 训练集前14条数据,验证在后4条数据。

在这里插入图片描述

y_test-y_pred: [0.0, -0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, -54.0, 61.2, 145.9, 136.7]

y_test-y_pred表示图中真实值和预测值的差值。

结论:0、做输入表现次好,1,后4条数据拟合情况还可以、3,后四条数据预测和真实情况差距在150以内。

除了所有特征前十天数据做输入,还进行了只使用布伦特x汇率前十天数据、只使用WTIx汇率前十天数据、只使用阿曼x汇率前十天数据、所有特征1\4\5\6\7天数据做输入的多种组合的尝试。总体效果比上一阶段有所提升,他们之间区别不大,不展开说明了。

4.1.2 每组中十天综合指标做输入

尝试输入新的指标特征提升模型效果:加入每组中的输入的均值、斜率、中位数、等特征。
在这里插入图片描述

绘制相关性热力图,我们发现,汽油调价与均值,中位值,拟合中值,相关性系数很高,基本接近于1。加入这个特征做输入训练模型,尝试效果。

使用10天的数据做均值,调价做输出训练模型。

输入: 所有特征前十天数据的均值

在这里插入图片描述

y_test-y_pred: [54.1, 56.2, -15.3, -98.3, 21.6, 60.4, -58.0, -17.5, -100.2, 9.5, 45.9, 31.9, 31.5, -21.9, 81.1, 54.3, 127.4, 97.0]

y_test-y_pred表示图中真实值和预测值的差值。

结论:0、做输入表现次好,1,后4条数据拟合情况还可以、3,后四条数据预测和真实情况差距在130以内。

除了所有特征前十天数据的均值做输入,还进行了只使用十天数据的中位数、拟合中值、斜率、十天数据加以上指标的多种组合的尝试。总体上还是单使用均值做输入,真实与预测的差值最小。

五.算法模型的优化

5.1 滑动窗口回测分析

回测是指基于历史已经发生过的真实油价数据,在历史上某一个时间点开始,按照上文的预测方式,得出历史中的预测结果,与真实结果比较。进一步分析模型在历史数据中表现的好坏。

以上步骤我们都只使用了2022.1-2022.10的19个调价周期的数据,现在我们准备将数据增加2021.1到2022.11的43个调价周期的数据。在这些数据上使用以上的方式,进行滑动窗口的模型回测。

1, 通过回测,确定最好作为训练集数据的时间段。(通过之前的工作发现将所有的数据作为训练集并不好。40组并不比20组数据好。一组10天)

2,通过回测,确定最好的输入特征(通过之前的工作,确定好几个强相关性指标,有很多种排列组合,通过不同特征模型的回测数据确定那种效果是最好的)

3,通过回测,确定最好的模型。(之前实验过线性模型,决策树模型,XGB模型)

y_pre_list-y_ture: [38.1, 21.7, -16.8, -18.0, -14.6, -39.4, -13.6, -53.6, 33.2, -10.3, -27.3, 1.9, -4.4, 1.1, 18.4, 65.1, 96.3, 87.4, -87.1, -53.3, 8.7, 50.9, 86.2, -23.9, -63.5, -48.9, 17.2, -30.0, 1.4, -108.3, -30.8, -119.3, -57.6]

y_pre_list-y_ture表示预测值和真实值的差。

在这里插入图片描述

1,实验了分别使用5-20组时间段数据训练模型预测,结论使用10组训练模型去预测结果较好。

2,我使用了【原油X汇率均值,原油X汇率拟合中值,原油X汇率中位数,本次限价价格】排列组合,回测效果,结果是使用【原油X汇率均值】拟合的模型,效果好

3,再确定输入特征的基础上,模型试用了,决策树,XGB,线性回归,再模型的稳定性上看,结果是线性模型效果好

5.2 线性模型的不足

经过各种输入特征,各种模型,及训练集长度的回测测试后,我们已经找到了一种做好的情况的组合。但是任然在一些情况下,预测与真实差值会比较大。

在这里插入图片描述

在回测数据中,真实值与预测的平均误差在48左右,而真实值和预测值误差较大的地方,一般出现在调整价格长期增长的时候,或者长期下降的时候。

在这里插入图片描述

如图示,第二个第三个子图,分别表示历史布伦特汇率_均值最近2次周期中的价格斜率,历史布伦特汇率_均值最近5次周期中价格斜率,斜率表示价格增长或者降低的程度。第四子图表示真实值和预测值误差折线图。

可以到误差极大极小值,一般都在短期斜率长期斜率都在高位或者低位的时候。

1,预测值是基于历史前十组数据形成lr模型生成的结果,它反应了历史近十组原油价格与调价结果的函数关系。

2,了解1中的含义,再看长期短期原油都在增长的是时期中,前期阶段真实值小于预测值,也就是真实值要低于原油价格反应出的调整价格(基于历史十次周期)。

3,再此基础上将此现象示为调价的“长尾效应”,即在外围原油成本价格上涨的时候,国内价格调整并没有那么多,也就是小于预测值。外围成本下降时相反。

4,长尾效果并不会持续出力很长时间,一方面新的数据参与进lr模型的训练,使函数在预测增长偏于保守,另一方面真实调整价格的压增长的行为可能也就进行几次,之后会释放。这也就容易在长期增长的曲线中出现,误差这次极大,下次极小的震荡现象。

5.3 决策树模型

基于原油平均值拟合的lr模型已经基本拟合了,平均误差48,调整价格平均在10000的话,误差占调整价格的大概不到0.5%。所以我们可以使用lr模型来做基准模型,给我们预测值一个比较不错的数值范围。

而在上边的线性模型的不足中了解到,有些较大的误差的出现,可能时源自于价格调整中的长尾效应。想要进一步提高模型的准确性,我们可以从这些较大误差入手,我们将回测数据中的误差看作残差,我们在训练一个拟合残差的模型,来提升基准模型的准确度。

在这里插入图片描述

上表将长期短期同增长或下降的数据提出,对比看起残差值。

布伦特汇率_均值_slop2 为布伦特汇率_均值在两次调价中表现的斜率、布伦特汇率_均值_slop5 为布伦特汇率_均值在五次调价中表现出来的斜率。

预测与真实调整价格差值 为正,通常是在一定时间上升期中,基模型通常遵循原油价格预测调控价格的值,高于真实发改委给出的调控价格,原因在长尾效应在上升期有意拉低上升的程度。

预测与真实调整价格差值 为负,通常是在一定时间下降期中,基模型通常遵循原油价格预测调控价格的值,低于真实发改委给出的调控价格,原因在于长尾效应在下降期有意延缓下降的程度。

认为残差的大小与长期短期增长斜率有关系,所以使用这个数据,训练决策树模型。

在这里插入图片描述

上图是决策树可视化图。决策树算法可以通过历史回测的误差数据的增多,增加决策树的条件分支。增加模型的规模。

5.4 最终模型的确立

在这里插入图片描述

最终采用了lr模型+决策树(拟合残差)模型的组合方式,进行算法预测。

算法的计算过程:

1,使用历史数据,回测基模型(lr模型)产生历史回测数据,记录基模型的误差。

2,使历史回测数据中记录的误差数据训练残差模型(决策树模型),用来弥补基模型的误差。

3,在预测的使用阶段,预测数据由 :基模型(lr模型)预测数值 - 残差模型(决策树)预测数值 = 最终预测值

六.评估

6.1 回测评估

最终的计算预测的方式确立为lr模型+决策树(拟合残差)模型的组合方式,我们在使用这个算法模型在历史数据终回测,查看效果。

在这里插入图片描述

经过基模型+残差模块修正 的回测,误差的均值由48多下降到30。

经过回测,连续上升期或下降期,前中期残差模块可以起到修正误差作用。

应该注意的是,由于长尾效果并不会持续出力很长时间,超过几次逆势调整之后的修正比较容易失效。所以出现了一些负向的误差负向增大的现象。

6.2 最新两次调价结果

使用这种预测方法在近两次真实调价中的表现结果:

11月16号:

预测值:

汽油:11159 价格下降

柴油:9445 价格下降

真实值:

汽油:11194 价格下降

柴油:9475 价格下降

误差:

汽油:-35

柴油:-30

七.总结

目前已经在运用的预测调价油价的方法,是通过单一的时间维度的价格调整数据,其预测的本质基本都是围绕单一维度数:调价价格。这一时序数据本身的周期性,趋势性等特性来进行预测。

这种传统方式是有很大局限性的。首先决定调整价格结果的因素有很多,仅仅使用单一维度的时序数据,数据利用率很低,并且训练算法模型很难保证准确率。其次时序算法是将过去的趋势延伸到来来,因此这种方法无法预测时间序列的转折点。在这种情况下,预测人员往往需要依靠自己的知识和经验对预测结果进行修正。

实时上国内油价调整价格受 国际原油价格,汇率等指标强影响,因此通过收集处理布伦特,WTI、阿曼、汇率等数据。将这些数据纳入预测调价结果的模型,可以大大提升可用数据利用率,更重要的是也提高预测准确率。在误差的基础上训练自触发的修正学习模型,可以对结果进行自动的进一步修正,大大提升了算法的健壮性,减少了人工的参与更加智能。

经过回测,连续上升期或下降期,残差模块可以起到修正误差作用。相对于传统人工对预测结果进行修正的方法,本技术方案自动化修正大大提升了模型的应用性。

相关文章:

国家调控油价预测案例+源码

项目git地址:https://github.com/Boris-2021/Oil-price-control-forecast 使用已知的历史数据:日期、汇率、布伦特、WTI、阿曼原油价格,预测下一个调价周期中的汽油、柴油零售限价的调价价格。 一. 需求 1.1 需求说明 使用已知的历史数据&a…...

Gephi快速入门

Gephi快速入门1. 导入文件(Import file)2. 布局(Layout)3. 排序(Ranking)4. 指标(Metrics)5. 标签(Label)6. 社区发现(Community detection&#…...

GitHub

什么是 Github?GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。一、常用词Watch:观察。如果watch了一个项目,之后这个项目有更新,你会在第一时间收到该项目更…...

QT基础入门【调试篇】QT远程部署与调试嵌入式ARM开发板

目录 一、环境配置 1、根据开发板完成交叉编译链以及GDB的配置(因开发板而异)...

可观测性最佳实践|阿里云事件总线 EventBridge 最佳实践

本文介绍如何把阿里云事件总线 EventBridge 的内容接入观测云平台,通过观测云强大的统一汇聚能力轻松获取阿里云事件,实时追踪最新的数据信息。 背景信息 事件总线 EventBridge 是阿里云提供的一款无服务器事件总线服务,支持阿里云服务、自定…...

设计模式-行为型

设计模式-行为型 行为型设计模式主要用于软件运行时复杂的流程控制。包含:模板方法模式、策略模式、命令模式、职责链模式、状态模式、观察者模式、中介者模式、迭代器模式、访问者模式、备忘录模式和解释器模式 模板方法模式 在软件设计时,很多时候系…...

Salesforce大揭秘!SaaS鼻祖不为人知的那些事!

Salesforce的世界无疑是广阔的。自从创始人Marc Benioff于1999年创立公司以来,Salesforce一直在打破CRM领域的界限,改变销售、营销和技术的格局。 作为全球领先的B2B科技公司之一,Salesforce和硅谷里的其他企业一样,缔造着一个关…...

Oracle——物化视图

文章目录含义物化视图的语法物化视图的创建1、自动刷新的物化事务 ON COMMIT2、非自动刷新的物化视图 ON demand关于手动刷新物化视图的删除资料参考含义 什么是物化视图? 物化视图,通俗点说就是物理化的视图。 什么叫物理化? 将视图以表结构…...

ur3+robotiq 2f 140配置moveit

ur3robotiq 2f 140配置moveit 参考链接1 参考链接2 官方配置movit教程 搭建环境: ubuntu: 20.04 ros: Nonetic sensor: robotiq_ft300 gripper: robotiq_2f_140_gripper UR: UR3 reasense: D435i 通过下面几篇博客配置好了ur3、力传感器、robotiq夹爪…...

LDO 芯片烫手,问题出在哪里?

设计失误的一个电路,该电路是数字电路的电源,为图方便对12V直接通过线性电源芯片降压到5V: 图1:线性电源降压12V转5V 几块电路板打样好后,测试均发现AMS1117-5.0芯片烫手,负载电流100mA多,也满…...

零日漏洞发展格局及防御策略

在过去的一年半中, 在野利用的零日漏洞数量持续飙升 ,这些软件制造商尚不知晓的漏洞正在被国家行为体黑客组织和勒索软件团伙滥用。 今年上半年,Google Project Zero统计了近20个零日漏洞,其中 大部分针对微软、苹果和谷歌构建的…...

RabbitMQ 可用磁盘空间报警

概要当磁盘可用空间低于设定的值(默认50M),将触发警报,并阻塞所有生产者。这目标是为了避免填满整个磁盘,这将导致所有节点上的写入操作失败,并可能导致RabbitMQ停止服务。如何工作为了减少磁盘被填满的风险…...

Web前端学习:二

二一&#xff1a;文字font-size样式 font-size&#xff1a;**px 控制文字大小&#xff0c;可精准控制大小 默认样式medium&#xff0c;中等的 large&#xff0c;大一号 x-large&#xff0c;再大一号 xx-large&#xff0c;再大一号 small&#xff0c;小一号 <!DOCTYPE html…...

【第一章 计算机网络体系结构,标准化工作相关组织,性能指标,分层结构,OSI参考模型】

第一章 计算机网络体系结构&#xff0c;标准化工作相关组织&#xff0c;性能指标&#xff0c;分层结构&#xff0c;OSI参考模型 1.计算机网络&#xff1a; &#xff08;1&#xff09;概念&#xff1a; ①计算机网络是将一个分散的、具有独立功能的计算机系统&#xff0c;通过通…...

SpringIOC源码解析

Spring深度学习&#xff08;一&#xff09;——IOC的设计理念Spring的核心思想——IOCSpring流程图DEMO编写Spring IoC容器的加载过程实例化化容器&#xff1a;AnnotationConfigApplicationContext实例化建BeanDefinition读取器&#xff1a; AnnotatedBeanDefinitionReaderBean…...

【Jupyter Notebook的简单入门使用】

【Jupyter Notebook的简单入门使用】简单介绍安装与配置简单使用Markdown关闭简单介绍 Jupyter官网 Jupyter Notebook 介绍 简单来讲&#xff0c;它是一个网页应用&#xff0c;可以进行文档编写&#xff0c;甚至运行 py 代码等功能 安装与配置 下载合适版本的 python &#…...

@Component@Import@Bean加载顺序解析

【前言】 我们在使用Spring注入Bean对象时&#xff0c;会使用不同注解&#xff0c;比如Component Service Controller Import Bean等。由于Service Controller 等都可以归为Component&#xff0c;那么Component 和Import 、Bean是何时被加载的&#xff0c;以及他们之间的顺序呢…...

二极管温度补偿电路工作原理分析

众所周知&#xff0c;PN结导通后有一个约为0.6V&#xff08;指硅材料PN结&#xff09;的压降&#xff0c;同时PN结还有一个与温度相关的特性&#xff1a;PN结导通后的压降基本不变&#xff0c;但不是不变&#xff0c;PN结两端的压降随温度升高而略有下降&#xff0c;温度愈高其…...

【C语言】多线程之条件竞争

多线程&#xff08;三&#xff09;条件竞争并发程序引起的共享内存的问题死锁互斥锁机制生产者消费者模型信号量机制解决&#xff1a;条件竞争 #include<stdio.h> #include<stdlib.h> #include<pthread.h> void* Print(char* str){printf("%s ",s…...

UE NavigationSystem的相关实现

导航数据的构建流程导航数据的收集导航系统中绑定了Actor、Component注册完成以及取消时的委托&#xff0c;通过这些委托把数据及时更新到导航系统的八叉树结构中导航系统的辅助结构DefaultOctreeController、DefaultDirtyAreasController分别承担了空间数据查询和置脏区域重新…...

Java 继承

文章目录1. 继承概述2. 变量的访问特点3. super 关键字4. 构造方法的访问特点5. 成员方法的访问特点6. 方法重写7. 继承案例1. 继承概述 继承是面向对象三大特征之一。可以使得子类具有父类的属性和方法&#xff0c;还可以在子类中重新定义&#xff0c;追加属性和方法。 publ…...

Python学习笔记8:异常

异常 一些内置的异常类 类名描述Exception几乎所有的异常类都是从它派生而来的AttributeError引用属性或给它赋值失败时引发OSError操作系统不能执行指定的任务&#xff08;如打开文件&#xff09;时引发&#xff0c;有多个子类IndexError使用序列中不存在的索引时引发&#…...

python保留小数函数总结

python保留小数——‘%f’‘%.nf’% x&#xff08;定义的变量&#xff09; 例子&#xff1a;a 82.16332 print(%.1f% a) print(%.2f% a) print(%.3f% a) print(%.4f% a) print(%.10f% a)输出结果python保留小数——format&#xff08;&#xff09;函数Python2.6 开始&#xff…...

狐狸优化算法(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密…...

浏览器自动化框架沦为攻击者的工具

5月27日消息&#xff0c;安全公司Team Cymru的研究人员表示&#xff0c;越来越多的威胁参与者正在使用免费的浏览器自动化框架作为其攻击活动的一部分。 研究人员表示&#xff0c;该框架的技术准入门槛故意保持在较低水平&#xff0c;以创建一个由内容开发者和贡献者组成的活跃…...

SQL必备知识(自用)

数据库基础知识sql和mysql的区别&#xff1a;数据库查询大全&#xff08;select&#xff09;1、select 字段名 from 表&#xff1b;2、In查询&#xff1a;用于过滤你所需要查询的内容3、范围查询&#xff1a;between4、模糊查询&#xff1a;like5、查询空值/非空&#xff1a;is…...

BI工具术语表大全:从字母A-Z全面收录

谈到商业智能行业&#xff0c;变革是不可避免的。为了跟上步伐&#xff0c;各种各样的BI 解决方案正在快速迭代更新&#xff0c;以满足企业的数字化需求&#xff0c;那么市场上BI 工具种类繁杂&#xff0c;到底如何选择适合功能全面、满足自己企业运转情况的、合适的BI 工具呢&…...

vue3 + vite + ts 集成mars3d

vue3 vite ts 集成mars3d 文章目录vue3 vite ts 集成mars3d前言一、创建一个vue3 vite ts项目二、引入mars3d相关依赖三、vite.config.ts 相关配置四、 新建DIV容器 创建地图前言 使用mars3d过程中&#xff0c;需要集成mars3d到自己的项目中&#xff0c;mars3d开发教程…...

跨境卖家必看的沃尔玛Walmart商家入驻教程

沃尔玛Walmart作为作为全球连锁超市的鼻祖&#xff0c;有不可比拟的知名度。当沃尔玛从线下延伸到线上后&#xff0c;就成为一个自带IP与流量的线上平台&#xff0c;在全世界都拥有数量庞大的消费者群体。所以龙哥就结合自己注册Walmart的过程给大家详细讲解一下。 Walmart卖家…...

【GANs】什么是饱和损失函数 Non-Saturating LossFunction

Saturating VS Non-Saturating Loss functions in GANs【GANs】什么是饱和损失函数 Non-Saturating LossFunctionSaturating VS Non-Saturating Loss functions in GANs 饱和Loss 普通GAN loss是生成器希望最小化被判断为假的概率。x取值范围是[0,1]&#xff0c;所以图中函数…...