【论文阅读】基于空间相关性与Stacking集成学习的风电功率预测方法
文章目录
- 摘要
- 0. 引言
- 1. 空间相关性分析
- 2. 风电功率预测模型
- 2.1 Stacking 集成策略
- 2.2 基学习器
- 2.2.1 基于机器学习算法的基学习器
- 2.2.2 基于神经网络的基学习器
- 2.2.3 基于粒子群优化算法的超参数优化
- 2.3 元学习器
- 2.4 基于空间相关性与Stacking集成学习的风电功率预测方法
- 3 算例分析
- 3.1 数据预处理
- 3.2 延迟时间计算
- 3.3 Stacking集成学习预测效果
- 3.4 风电功率预测方法对比
- 4. 结论
论文地址:
https://d.wanfangdata.com.cn/periodical/Ch9QZXJpb2RpY2FsQ0hJTmV3UzIwMjUwMTA0MTcwMjI2Eg9qc2RqZ2MyMDI0MDUwMjYaCGMxNXJybm5t
摘要
本文要解决的问题:
- 针对目标气象预报数据缺失导致风电预测精度不足的问题, 提出一种基于空间相关性和Stacking集成学习的风电功率预测方法
解决思路:
- 首先, 分析目标风电场与相邻气象站点之间的空间相关性,根据相关系数极值点确定延迟时间,构建风速时移数据集
- 其次, 利用Stacking集成方法融合多元算法,从多个数据观测角度预测目标风电场的风电功率,实现不同算法的优势互补,提升整体泛化能力,并采用粒子群优化算法搜索模型超参数,较好地平衡搜索时间与模型效果
- 最后,采用华东地区某风电场的实测数据验证了文中所提方法的有效性和准确性.结果表明,通过考虑不同位置的信息偏差,从数据输入和预测模型两方面可有效提高数据缺失情况下的风电预测精度
0. 引言
目前,人工智能方法通过大量历史样本挖掘输入特征与输出结果之间的非线性映射关系,具有较高的预测精度,其主要有卷积神经网络支持向量机、极限学习机等方法。结合数据挖掘的方法可以提高人工智能法的预测精度,分析数据的深层特性,如聚类方法、信号分解 、关联度分析等。
人工智能方法缺点:
- 人工智能法往往需要借助数值天气预报 (numerical weather prediction,NWP) 数据进行预测,但出于实际成本考虑,气象预报服务难以做到精确全覆盖。当风电场缺乏NWP数据时,该方法难以发挥实际作用。
但是,由于大气运动的连续性,相邻风电场或者气象站点的气象数据具有相似性,可以为目标风电场提供数据参考。因此考虑空间相关性的建模方法能够获取完善的气象变化规律与风速分布信息,在一定程度上解决了上述问题。然而,现有方法没有考虑利用相邻风电场之间数据的延迟时间来优化风场数据。
有关集成学习:
- 此外,集成学习通过融合多种学习器或者算法,采用集体智慧提高整体泛化能力,因此成为数据竞赛中的常用方法。
综上:
- 文中对整体风电场的输出功率进行研究,提出一种基于空间相关性和Stacking集成学习的风电功率预测方法
- 首先计算目标风电厂与相邻气象站点的延迟时间,构建风速时移数据集,弥补目标风电场气象数据的缺失;
- 其次,基于风速时移数据集,选用粒子群优化的SVM、RF、极端梯度上升(extreme gradient boosting,XGBoost)算法、CNN、GRU作为基学习器,采用Stacking集成方法实现多模型融合,完成目标风电场的功率预测。
1. 空间相关性分析
风速的空间相关性是指不同空间位置处的风电场或气象站点的风速数据在空间上的相关程度。由于大气运动的连续性,相邻位置的风速序
列具有一定的相似性和延时性。合理运用空间相关性,尤其是上游风电场,可以追溯目标风电场未来的气象信息,因此,可以直接沿用相邻位置的数据。而对于随机波动较强的风速数据而言,需要考虑不同地理位置导致的延时,对风速数据进行修正,从而提升目标风电场的预测精度。
要准确计算不同位置之间的延迟时间应综合考虑实际地形、地貌、风速以及风向变化,涉及复杂的时空变化过程。已有研究利用Pearson相关系数计算风速和风功率之间的相关性。文中也采用Pearson相关系数计算相邻气象站点风速数据与目标风电场功率数据之间的相关性,以确定最佳延迟时间。计算步骤如下:
- 相邻风电场或气象站点的原始风速数据相对于目标风电场功率数据进行移动,移动的时间间隔为采样周期15 min的整数倍,时间间隔的正、负分别表示气象站点数据和风站数据之间的超前、滞后关系。
- 分别计算移动不同时间间隔下风速数据与目标风电场功率数据之间的 Pearson 相关系数。Pearson 相关系数作为两组数据相似程度的判据,其取值范围为 [-1,1],当相关系数大于零时,两变量正相关,当相关系数小于零时则负相关,相关系数的绝对值越大,变量间的相关程度越高。
- 令相邻气象站点的风速序列为 x x x , 目标风电场功率序列为 y y y,Pearson 相关系数计算公式如下:
r = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 n ( x i − x ˉ ) 2 ∑ i = 1 n ( y i − y ˉ ) 2 r = \frac {\sum_{i=1}^n (x_i - \bar x)(y_i - \bar y)}{\sqrt {\sum_{i=1}^n(x_i - \bar x)^2} \sqrt {\sum_{i=1}^n(y_i- \bar y)^2}} r=∑i=1n(xi−xˉ)2∑i=1n(yi−yˉ)2∑i=1n(xi−xˉ)(yi−yˉ)
其中:
- r r r 为 Pearson 相关系数
- x i x_i xi 为相邻气象站点第 i i i 个风速度数据
- y i y_i yi 为目标风电场第 i i i 个功率数据
- x ˉ \bar x xˉ 表示为序列 x x x 中数据的平均值
- y ˉ \bar y yˉ 表示为序列 y y y 中数据的平均值
- n n n 为序列样本总数
在不同时间间隔下计算得到的 Pearson 相关系数中选择极大值作为延迟时间,调整原始风速序列,获取目标风电场精确的功率数据。
以华东地区某风电场及其相邻气象站为例,一段时间内风电场功率数据与气象站点风速数据如图所示:
分别计算不同时间间隔下的相关系数:
由于地理位置相邻,目标风电场的功率数据与气象站点的风速数据之间存在较高的相关性,这表明相邻气象站点具有为信息缺失风电
场提供数据参考的可行性。当时间问隔为30 min时,两者的相关系数达到最高,为0.782,且在 -4~4h 的变化范围内,仅存在唯一极值点,证实了采取相关系数确定延迟时间的合理性,避免了复杂的时空建模过程。
2. 风电功率预测模型
2.1 Stacking 集成策略
集成方法结合多元算法优势,能够适应多种预测场景,可以解决单一算法对于短时问内急剧波动的突发性天气预测精度不足的问题,获得更加稳定的预测结果。集成学习主要包含三大类:Bagging、Boosting、Stacking。Stacking集成学习算法具有严谨的集成规则和强大的学习能力,其初步预测的个体学习器被称为基学习器,用于结合的学习器被称为元学习器。先用全部数据训练基学习器,每个基模型都对训练样本进行预测,将其预测值作为训练样本的特征值,然后得到新的训练样本,最后基于新的训练样本数据训练元学习器,得到更准确的预测结果。Stacking集成学习通过结合不同个体学习器的预测结果,可以规避陷入局部极值的风险,在大规模训练数据上具有优越表现。集成学习框架如图所示:
在训练过程中,若直接使用基学习器的训练集来生成次级训练集,将会增加过拟合的风险,大大降低集成模型在测试集上的表现。为避免重复学习,采用K折交叉验证的方式生成次级训练集。具体的将原始数据划分为 K 个大小相等且不重合的子集, 记为 D = { D 1 , D 2 . . . . . D k } D = \{D_1, D_2.....D_k\} D={D1,D2.....Dk} ,其中 D j D_j Dj 为第 j j j 次交叉验证的验证集,其余子集为第 j j j 次交叉验证的训练集。于每个基学习器而言,在训练集上训练模型,在验证集上预测结果,经过K轮训练和测试后,将预测结果纵向堆叠产生次级训练集,且次级训练集的样本量与原始数据的样本量相同。该方式在减小过拟合风险的同时,可以确保元学习器有充足的训练样本。
2.2 基学习器
基学习器是集成模型中的个体学习器,通常为弱学习器,一般采用相对简单或性能略低的模型。但Stacking集成策略中的基学习器为强学习器,以期在个体学习阶段获得较为准确的预测值。基学习器是保证集成效果与稳健决策的关键,可采用常见的机器学习算法如 SVM、RF 和 XGBoost,此外,CNN、GRU 等神经网络也常被作为基学习器使用。
2.2.1 基于机器学习算法的基学习器
- Stacking 集成学习:文中使用了 Bagging 流派的 RF(随机森林) 算法和 Boosting 流派的 XGBoost 算法作为基学习器,并将其并行训练,以发挥两者的优势。
- RF(随机森林):属于 Bagging 算法,通过构建多个独立的决策树并通过随机样本和特征选择来提高模型的泛化能力。
- XGBoost:属于 Boosting 算法,改进了梯度提升树(GBDT),通过加入正则项控制模型复杂度,采用二阶泰勒展开来近似目标函数,从而有效防止过拟合并提高预测精度。
- SVM:作为另一种基学习器,利用核函数将低维数据映射到高维特征空间,转化非线性回归为线性回归,凭借其数学理论,能够在实际任务中表现良好。
总体来说,文中将三种算法结合,通过 Stackings 集成策略,增强了模型的准确性和泛化能力。
2.2.2 基于神经网络的基学习器
文中的Stacking集成学习框架中还包含CNN、GRU两种神经网络。CNN具有局部连接和权值共享的特点,可以在大幅减少参数计算量的同时提取输入特征,因此常被用于图像识别、故障诊断等领域。CNN一般由卷积层、池化层和全连接层构成。卷积层通过设置不同尺寸的卷积核来获取相应的感受野,从中挖掘关联信息。针对卷积层提取的局部非线性特征,池化层可以缩减特征图的尺寸,起到数据降维的作用。
- 由于风电场实测信息的时序特性,文中通过堆叠多层一维卷积层来挖掘风电场内的耦合联系。其中设置卷积核的数量为1,尺寸为3,步长为1。卷积核沿着时间维度对特征矩阵进行扫描,最终得到 4*1 的特征向量。考虑到风电功率的随机波动性,一般采用多个卷积核进行扫描,挖掘原始数据中的深层特性。
GRU作为循环神经网络的典型代表,在长短期记忆(LSTM)网络的基础上进行改进,将LSTM网络中的输入门和遗忘门合并为GRU中的更新门,实现信息输入与遗忘之间的平衡。GRU通过更新门和重置门来控制时序信息的动态传递过程,因此,模型结构得到简化,且在相同的预测任务下,可以在保证预测效果的同时有效降低模型计算量与训练时间。
2.2.3 基于粒子群优化算法的超参数优化
集成学习中有众多超参数,因此精准高效的参数优化方法至关重要。一般采用随机搜索方法确定模型超参数,从参数范围中随机采样参数点,但该方法可能会错过最优超参数结果,未能充分发挥基学习器性能。因此,文中利用粒子群优化算法在参数空间中寻找最优的参数集,改善预测性能。
2.3 元学习器
-
基学习器是对同一数据集进行观测分析,预测结果存在相似性,元学习器用于组合基学习器的策略或算法,通过对基学习器的输出进行组合,生成最终集成模型的预测结果。防止过度学习,Stacking集成策略中的元学习器一般选用弱学习器。元学习器的训练数据为各基学习器在训练集上预测结果的连接,若某个基学习器错误地学习了特征空间的某个区域,那么元学习器通过结合其基学习器的学习行为,可以对错误进行适当纠正,以提高最终预测结果的精度。
-
文中基学习器选择了5种不同的算法,5种算法的预测结果之间异质化明显,使得总模型具备较强的泛化能力。因此,元学习器不需要选择太复杂的模型,以保持总模型的泛化能力。对于文中研究的回归问题,元学习器主要起到对集成算法的加权集成作用,采用复杂的线性回归器作为元学习器也只能发挥加权集成作用,因此简单的线性回归器便可以满足Stacking模型中元学习器的要求,且有较快的计算速度。
-
贝叶斯回归模型在一般的误差函数基础上添加了正则化项,预测过程简单且速度快,可以有效避免产生过拟合现象 。此外,贝叶斯回归模型适合处理多分类任务,其表现稳定,能够在缺失数据的情况下进行预测,适用于文中研究的集成学习环境,对基学习器的预测结果进行汇总并实现风速预测。因此,文中采用贝叶斯回归模型作为元学习器。
2.4 基于空间相关性与Stacking集成学习的风电功率预测方法
针对目标风电场气象预报数据缺失的状况,采取相邻气象站点的风速时移作为数据参考,构建融合多元算法的集成模型以提升预测精度。预测模型训练过程如图:
具体流程如下:
- (1)数据集进行预处理,在此基础上,采用Pearson相关系数分析目标风电场功率数据与相邻气象站点风速数据之问的延迟时间,采用风速时移数据集作为目标风电场的气象数据。
- (2)对风速时移数据集进行5折交叉验证,避免学习器重复学习而产生过拟合现象。
- (3)在交叉验证风速时移数据集的基础上,利用RF、XGBoost、SVM、CNN及GRU共5种基学习器进行训练,并通过粒子群优化算法优化基学习器的超参数,提升预测精度。
- (4)将基学习器的预测结果组合成一个新的矩阵,其中每一列代表一个基学习器的预测结果,称之为次级训练集。
- (5)次级训练集上,采用贝叶斯回归模型作为元学习器,训练学习如何最好地组合这些基学习器的预测结果。元学习器的输出是最终的集成模型结合基学习器的预测结果,输出最终风电出力,完成基于空间相关性与Stacking集成学习的预i贝4模型训练过程。
- (6)在测试集上进行对比分析,并通过评估指标验证文中所提方法的准确性与有效性。
3 算例分析
文中实验数据采用华东地区某风电场2019年6月1日至2020年1月31日的实测风电功率以及气象站点的气象预报数据,该风电场的装机容量为18 MW。单一气象预报结果难以准确反映气象运动规律,因此选取目标风电场周围 2 个气象站点的气象预报数据作为风电场的数据参考,分别记为气象站点1、气象站点2。两气象站点与风电场的距离分别为 24.8、19.4 km;气象预报数据包括风速、风向、温度、湿度、气压;所有数据的采样周期均为15 min。为避免预测结果的偶然性,以及确保集成模型具有足够的训练样本,将2019年6月1 日至8月31日的数据作为训练集1,2019年9月1日至30日的数据作为测试集1;将2019年10月1日至12月31日的数据作为训练集2,2020年1月1日至31日的数据作为测试集2。
针对不同方法的预测结果,选取均方根误差(RMSE)和平均绝对值误差(MAE)作为评估指标验证文中方法准确性:
E R M S E = 1 n ∑ t = 1 n ( y t − y ^ t ) 2 E_{RMSE} = \sqrt {\frac {1}{n} \sum_{t=1}^n (y_t - \hat y_{t})^2} ERMSE=n1t=1∑n(yt−y^t)2
E M A E = 1 n ∑ t = 1 n ∣ y t − y ^ t ∣ E_{MAE} = \frac {1}{n} \sum_{t=1}^n | y_t-\hat y_{t}| EMAE=n1t=1∑n∣yt−y^t∣
其中:
- y t y_t yt 为 t t t 时刻的风电功率实际值
- y ^ t \hat y_t y^t 为 t t t 时刻的风电功率预测值
3.1 数据预处理
由于传感器故障、设备检修等诸多原因,采集的数据中往往会存在异常和缺失的状况,为降低不良数据的干扰,需要对数据进行清洗。对于大规模缺失的数据予以删除,对于少量缺失或者异常的数据采用线性插值法进行填补。
由于不同特征间的量纲差异,需要对实验数据进行归一化处理,从而提升模型训练效率与预测精度。其中,对于气象特征采用 min-max 归一化,将原始数据 z 变换到 [0,1] 之间,即:
z ′ = z − z m i n z m a x − z m i n z' = \frac {z-z_{min}}{z_{max} - z_{min}} z′=zmax−zminz−zmin
其中:
- z ′ z' z′ 为归一化结果
- z m a x z_{max} zmax 为原始数据中最大值
- z m i n z_{min} zmin 为原始数据中最小值
特别地,风向变化范围在0~360之间,0附近的风向数据 (如1和359) 差异较小,但 min-max 归一化会割裂这种内在联系。因此,归一化方法既要区分风向数据的差异性,又要关注实际变化过程中的关联性,故采用下式的正余弦化方法进行处理,将其作为2个气象因素:
z θ = s i n θ z θ ′ = c o s θ z_{\theta} = sin \theta \\ z_{\theta}' = cos \theta zθ=sinθzθ′=cosθ
其中:
- z θ z_{\theta} zθ 、 z θ ′ z_{\theta}' zθ′ 为风向数据的归一化结果
- θ \theta θ 为风向数据
将归一化后的气象特征输入到预测模型中,得到的功率预测结果仍为归一化数据。因此,对预测输出进行反归一化操作,使其具有明确的物理含义,并与真实数据进行对比分析,具体公式如下:
z = z ′ ( z m a x − z m i n ) + z m i n z = z'(z_{max} - z_{min}) +z_{min} z=z′(zmax−zmin)+zmin
3.2 延迟时间计算
通过时间序列平移的方式,依次计算不同时间间隔下气象站点历史风速数据与风电场历史功率数据之间的相关系数,根据相关系数极值点确定延迟时间。由于地理位置的分布以及风向的改变,延迟时间有正负之分,当延迟时间为正时,表示原始气象站点的风速数据超前于风电场的功率数据,需要将风速数据相较于功率数据后移;当延迟时间为负时,表示原始气象站点的风速数据滞后于风电场的功率数据,需要将风速数据相较于功率数据前移。对数据集1、数据集2利用第l章中的方法进行空间相关性分析,计算各个气象站点与目标风场之间的延迟时间。
3.3 Stacking集成学习预测效果
为展示Stacking集成学习的优越性能,选取基学习器 SVM、RF、XGboost、CNN 和 GRU 在测试集上的预测误差与Stacking集成方法的预测误差进行对比,结果如表所示:
- 数学逻辑严谨的SVM模型通过选取合适的核函数和相关参数,可以较好地拟合风电功率
- 基于Bagging和Boosting原理的集成算法通过构建多个学习器提升整体泛化能力,在测试集上取得了良好的预测效果,特别是XGBoost模型凭借精确的目标函数优化和防止过拟合的优势获得了较好的预测效果
- CNN擅长处理高维数据中的耦合联系,通过卷积核获取局部关联特征,可以较好地拟合实际数据
- GRU通过历史数据挖掘气象变化规律,从而推演风电功率波动;Stacking集成学习融合多元算法的优势推演风电功率
3.4 风电功率预测方法对比
考虑空间距离带来的信息偏差,可以构造更加准确的气象数据集。此外,集成学习可以融合不同算法的优势来弥补单一学习器的局限性,面对随机波动的风电出力,其预测结果更精确,适应性更强。为验证文中所提方法的有效性,采取以下3种方法进行风电功率预测,并与实际功率对比。
- (1)忽略风电场与相邻气象站点问的信息偏差,直接采用气象站点的气象预报数据作为模型输入,利用Stacking集成方法输出最终风电出力。通过与方法3对比,验证基于时间间隔的数据修正方法对风电功率预测精度的提升效果
- (2)考虑风电场与相邻气象站点间的信息偏差,采用风速时移数据集作为模型输入,利用平均法集成基学习器的预测结果作为最终风电出力。通过与方法3对比,验证Stacking集成方法对风电功率预测精度的提升效果
- (3)考虑风电场与相邻气象站点间的信息偏差,采用风速时移数据集作为模型输入,利用Stacking集成方法确定最终风电出力,模型超参数采用粒子群优化算法搜索确定。方法3为文中提出的基于空间相关性与Stacking集成学习的风电功率预测方法,通过与方法1、方法2进行对比以验证文中所提方法的有效性
为对比3种方法的性能,选取测试集中的某个典型日的风电预测结果进行展示,以15 min为采样间隔、8个采样点为时间窗口,滚动预测生成的96个采样点,预测结果:
- 方法1直接采用相邻气象站点的气象数据,未考虑地理位置分布造成的信息偏差,集成模型推演的功率结果存在相应的误差
- 方法2采用平均法集成基学习器的预测结果,未能凸显不同学习器的性能差异,提升效果有限
- 方法3在Stacking集成学习的基础上,构建风速时移数据集,更加准确地挖掘目标风电场的气象特征,同时采用粒子群优化算法搜索超参数,提升了整体预测精度
4. 结论
在对风电场功率预测的过程中,考虑大气运动的连续性和集成模型的优越表现,提出了一种基于空间相关性与Stacking集成学习的风电功率预测模型,通过算例对比,得到如下结论:
- (1)用相关系数的极值来确定相邻气象站点与目标风电场的延迟时间,构建风速时移数据集,挖掘气象运动规律,完善目标风电场的气象数据
- (2)用Stacking集成方法融合多样化的基学习器,实现多元算法的优势互补,提高集成模型的泛化能力,同时,采用交叉验证的方式产生次级训练集,可以减小过拟合的风险
- (3)对集成学习中的众多超参数,采用粒子群优化算法进行寻优,在保证模型预测性能的同时,降低了搜索时间,提升了预测精度
需要说明的是,文中的研究对象是整体风电场的输出功率,并不是风电场内部不同风电机组的功率,没有更细致地考虑风电场内部风电机组之间的影响,且风速的空间相关性也具有时变性能。因此,后续将综合考虑风速、风向等多种气象因素,通过动态划分不同风电场子集,采取分类建模提升预测效果,并在此基础上,引入不确定性分析,实现对风电功率的不确定性分析。
相关文章:
【论文阅读】基于空间相关性与Stacking集成学习的风电功率预测方法
文章目录 摘要0. 引言1. 空间相关性分析2. 风电功率预测模型2.1 Stacking 集成策略2.2 基学习器2.2.1 基于机器学习算法的基学习器2.2.2 基于神经网络的基学习器2.2.3 基于粒子群优化算法的超参数优化 2.3 元学习器2.4 基于空间相关性与Stacking集成学习的风电功率预测方法 3 算…...
什么是Spring Boot 应用开发?
一、引言 在当今的软件开发领域,Java 依然占据着重要的地位,而 Spring Boot 作为 Java 生态系统中极具影响力的框架,极大地简化了企业级应用的开发流程,提升了开发效率和应用的可维护性。它基于 Spring 框架构建,通过…...
选择saas 还是源码主要考虑
公司业务规模:小型企业可能会发现SaaS提供的即用型解决方案更符合其需求,而大型企业可能需要源码以实现更高的定制性和控制权。 公司技术专长:缺乏技术团队的企业可能会倾向于使用SaaS,而那些拥有强大IT部门的企业可能更适合管理…...
【JAVA 基础 第(19)课】Hashtable 类用法和注意细节,是Map接口的实现类
Map接口:存放的是具有映射关系的键值对,键映射到值,键必须是唯一的 Hashtable 类,Map接口的实现类,键和值都不能为nullHashtable 是同步的,是线程安全的 public class MapTest {public static void main(String[] arg…...
AI时代下 | 通义灵码冲刺备战求职季
AI时代下 | 通义灵码冲刺备战求职季 什么是通义灵码使用智能编程助手备战求职靠谱吗体验心得 AI时代下,备战求职季有了不一样的方法,使用通义灵码冲刺备战求职季,会有什么样的体验? 什么是通义灵码 在开始话题之前,首…...
如何将 session 共享存储到 redis 中
文章目录 一. 分布式 session 登录1.1 什么是分布式?1.2 Session 共享1.3 为什么服务器 A 登录后,请求发到服务器 B,不认识该用户?1.4 共享存储 二. Session 共享实现Redis三. 测试session共享四. cookie设置4.1 前端4.2 后端 一.…...
智能科技与共情能力加持,哈曼重新定义驾乘体验
2025年1月6日,拉斯维加斯,2025年国际消费电子展——想象一下,当您步入一辆汽车,它不仅能响应您的指令,更能理解您的需求、适应您的偏好,并为您创造一个独特且专属的交互环境。作为汽车科技领域的知名企业和…...
第4章 Kafka核心API——Kafka客户端操作
Kafka客户端操作 一. 客户端操作1. AdminClient API 一. 客户端操作 1. AdminClient API...
Debian 设定 tomcat 定时重启
目录 背景 过程记录 1、编辑sh文件,完成重启功能 2、设置sh的可执行权限 编辑 3、设置定时任务 背景 在Debian 12系统中,原本部署了两个tomcat,结果总是遇到CPU飙升到影响应用正常使用的程度,找了很久原因还是没有找到。 …...
mysql8.0 重要指标参数介绍
MySQL 8.0 引入了许多新的功能和优化,针对性能、可扩展性、可靠性以及安全性方面做出了显著改进。为了确保 MySQL 的高效运行,了解和配置 MySQL 的一些关键指标参数非常重要。以下是 MySQL 8.0 中的一些重要参数和指标,帮助你优化数据库性能。…...
SpringMVC (2)
目录 1. RequestMapping 注解介绍 2. RequestMapping 使用 3. RequestMapping与请求方式 3.1 RequestMapping 支持Get和Post类型的请求 3.2 RequestMapping 指定接收某种请求 3.3 GetMapping和PostMapping 4. 传参 4.1 通过查询字符串传参 4.2 在 Body 中传参 4.2.1 …...
【全面解析】深入解析 TCP/IP 协议:网络通信的基石
深入解析 TCP/IP 协议:网络通信的基石 导语 你是否曾好奇,现代互联网是如何实现全球设备之间的高速、稳定和可靠通信的?无论是浏览网页、发送电子邮件,还是进行视频通话,背后都离不开 TCP/IP 协议 的支撑。作为互联网…...
图数据库 | 19、高可用分布式设计(下)
相信大家对分布式系统设计与实现的复杂性已经有了一定的了解,本篇文章对分布式图数据库系统中最复杂的一类系统架构设计进行探索,即水平分布式图数据库系统(这个挑战也可以泛化为水平分布式图数据仓库、图湖泊、图中台或任何其他依赖图存储、…...
【2024年华为OD机试】 (C卷,200分)- 反射计数(Java JS PythonC/C++)
一、问题描述 题目解析 题目描述 给定一个包含 0 和 1 的二维矩阵,一个物体从给定的初始位置出发,在给定的速度下进行移动。遇到矩阵的边缘时会发生镜面反射。无论物体经过 0 还是 1,都不影响其速度。请计算并给出经过 t 时间单位后&#…...
【微服务】SpringCloud 1-9章
1从Boot和Cloud版本选型开始说起 1.1Springboot版本选择 1.1.1git源码地址 https://github.com/spring-projects/spring-boot/releases/ 1.1.2官网看Boot版本 1.1.3SpringBoot3.0崛起 https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-3.0-Release-Notes …...
Jmeter进行http接口并发测试
目录: 1、Jmeter设置(1)设置请求并发数(2)设置请求地址以及参数(3)添加结果数 2、启动看结果 1、Jmeter设置 (1)设置请求并发数 (2)设置请求地址…...
JavaScript语言的数据结构
JavaScript中的数据结构 引言 在编程的世界里,数据结构是处理和组织数据的重要方式。数据结构的选择往往直接影响到程序的性能和可维护性。JavaScript作为一门广泛使用的编程语言,在数据结构的设计和使用上也有其独特的特点。本文将深入探讨JavaScript…...
【数据分享】1929-2024年全球站点的逐日平均气温数据(Shp\Excel\免费获取)
气象数据是在各项研究中都经常使用的数据,气象指标包括气温、风速、降水、湿度等指标,其中又以气温指标最为常用!说到气温数据,最详细的气温数据是具体到气象监测站点的气温数据!本次我们为大家带来的就是具体到气象监…...
DETRs with Collaborative Hybrid Assignments Training论文阅读与代码
关键词:协作混合分配训练 【目标检测】Co-DETR:ATSS+Faster RCNN+DETR协作的先进检测器(ICCV 2023)-CSDN博客 摘要: 在这篇论文中,作者观察到在DETR中将过少的 Query 分配为正样本,采用一对一的集合匹配,会导致对编码器输出的监督稀疏,严重损害编码器的区分特征学习…...
某国际大型超市电商销售数据分析和可视化
完整源码项目包获取→点击文章末尾名片! 本作品将从人、货、场三个维度,即客户维度、产品维度、区域维度(补充时间维度与其他维度)对某国际大型超市的销售情况进行数据分析和可视化报告展示,从而为该超市在弄清用户消费…...
码云gitee 新建仓库 添加公钥
码云gitee 新建仓库 添加公钥 文章目录 码云gitee 新建仓库 添加公钥新建仓库生成公钥管理个人公钥安全验证 码云这个网站是一个代码托管平台,在国内可以无限制的使用,在这个网站上,也可以搜索到一些github上面的内容。进入这个网站ÿ…...
SQL 基础教程 - SQL SELECT INTO 语句
通过 SQL,您可以从一个表复制信息到另一个表。 SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。 SQL SELECT INTO 语句 SELECT INTO 语句从一个表复制数据,然后把数据插入到另一个新表中。 注意: MySQL 数据…...
《leetcode-runner》如何手搓一个debug调试器——指令系统
前文: 《leetcode-runner》如何手搓一个debug调试器——引言 《leetcode-runner》如何手搓一个debug调试器——架构 文章目录 什么是指令系统指令的组成部分leetcode-runner支持哪些指令如何解析用户输入的命令行指令识别流程 仓库地址:leetcode-runner …...
基于预共享密钥的IPsec实验
一、实验目的 (1)了解IPsec的原理和协议运行机制; (2)掌握IPsec身份认证的预共享密钥的配置; (3)掌握用Wireshark工具抓包分析IPsec数据包格式和协议流程。 二、实验设备与环境 &…...
Golang Gin系列-2:搭建Gin 框架环境
开始网络开发之旅通常是从选择合适的工具开始的。在这个全面的指南中,我们将引导你完成安装Go编程语言和Gin框架的过程,Gin框架是Go的轻量级和灵活的web框架。从设置Go工作空间到将Gin整合到项目中,本指南是高效而强大的web开发路线图。 安装…...
R语言绘图
多组火山图 数据准备: 将CSV文件同一在一个路径下,用代码合并 确保文件列名正确 library(fs) library(dplyr) library(tidyr) library(stringr) library(ggplot2) library(ggfun) library(ggrepel)# 获取文件列表 file_paths <- dir_ls(path &quo…...
Linux《Linux简介与环境的搭建》
在学习了C或者是C语言的基础知识之后就可以开始Linux的学习了,现在Linux无论是在服务器领域还是在桌面领域都被广泛的使用,所以Linxu也是我们学习编程的重要环节,在此接下来我们将会花大量的时间在Linxu的学习上。在学习Linux初期你可以会像初…...
.Net Core webapi 实现JWT认证
文章目录 需求准备创建JWT配置创建JWTService注册JWT创建中间件读取jwt的token在需要的接口上添加属性启动认证启动swagger的授权认证使用 需求 实现一个记录某个用户所有操作的功能 准备 创建你的webapi项目从nuget下载安装JWT资源包根据你的项目使用.net版本下载对应的jwt…...
SDL2:Android APP编译使用 -- SDL2多媒体库使用音频实例
SDL2:Android APP编译使用 3. SDL2:Android APP编译使用3.1 Android Studio环境准备:3.2 构建Android APP(1)方式一:快速构建APK工程(2)方式二:自定义APK工程(…...
gitignore忽略已经提交过的
已经在.gitignore文件中添加了过滤规则来忽略bin和obj等文件夹,但这些文件夹仍然出现在提交中,可能是因为这些文件夹在添加.gitignore规则之前已经被提交到Git仓库中了。要解决这个问题,您需要从Git的索引中移除这些文件夹,并确保…...
Visual Studio2019调试DLL
1、编写好DLL代码之后,对DLL项目的属性进行设置,选择待注入的DLL,如下图所示 2、生成DLL文件 3、将DLL设置为启动项目之后,按F5启动调试。弹出选择注入的exe的界面之后,使用代码注入器注入步骤2中生成的dllÿ…...
电力场景红外测温图像绝缘套管分割数据集labelme格式2436张1类别
数据集格式:labelme格式(不包含mask文件,仅仅包含jpg图片和对应的json文件) 图片数量(jpg文件个数):2436 标注数量(json文件个数):2436 标注类别数:1 标注类别名称:["arrester"] 每个类别标注的框数&am…...
RV1126+FFMPEG推流项目(7)AI音频模块编码流程
一、AI 模块和外设麦克风的关系 AI 模块是 RV1126 芯片的一个重要组成部分。它的主要功能是将外部接入的麦克风采集到的模拟信号通过内置的驱动程序转换为数字信号。这意味着麦克风作为外设,提供音频输入信号,AI 模块通过其硬件和软件的结合,…...
从零开始启动一个Vue项目
目录 一、首先下载Node.js 二、安装vue脚手架vue-cli 三、使用vue-ui创建一个vue项目 四、vue项目目录结构 五、启动vue项目 方法一:cmd窗口启动 方法二:软件中启动 一、首先下载Node.js 可以去看我的上一篇博客: NodeJs的安装及环境…...
存储过程和触发器
目录 1、存储过程 1.1 存储过程的概述 1.2 存储过程的类型 1. 系统存储过程 2. 本地存储过程 3. 临时存储过程 4. 扩展存储过程 1.3 T-SQL创建存储过程 1.4 T-SQL执行存储过程 1.5 T-SQL查看存储过程 1.6 T-SQL修改存储过程 1.7 T-SQL删除存储过程 2、触发器 2.1 …...
改进果蝇优化算法之一:自适应缩小步长的果蝇优化算法(ASFOA)
自适应缩小步长的果蝇优化算法(ASFOA)是对传统果蝇优化算法的一种重要改进,旨在克服其后期种群多样性不足、容易过早收敛和陷入局部最优等问题。有关果蝇优化算法的详情可以看我的文章:路径规划之启发式算法之二十七:果蝇优化算法(Fruit Fly Optimization Algorithm,FOA…...
道旅科技借助云消息队列 Kafka 版加速旅游大数据创新发展
作者:寒空、横槊、娜米、公仪 道旅科技:科技驱动,引领全球旅游分销服务 道旅科技 (https://www.didatravel.com/home) 成立于 2012 年,总部位于中国深圳,是一家以科技驱动的全球酒店资源批发商…...
LLM - 大模型 ScallingLaws 的 CLM 和 MLM 中不同系数(PLM) 教程(2)
欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/145188660 免责声明:本文来源于个人知识与公开资料,仅用于学术交流,欢迎讨论,不支持转载。 Scalin…...
游戏引擎学习第80天
Blackboard:增强碰撞循环,循环遍历两种类型的 t 值 计划对现有的碰撞检测循环进行修改,以便实现一些新的功能。具体来说,是希望处理在游戏中定义可行走区域和地面的一些实体。尽管这是一个2D游戏,目标是构建一些更丰富…...
CSS布局与响应式
学习链接 Grid网格布局 前端五大主流网页布局 flex布局看这一篇就够了 grid布局看这一篇就够了 用六个案例学会响应式布局 伸缩盒响应式页面布局实战 实现响应式布局的五种方式 - csdn 如何完成响应式布局,有几种方法?看这个就够了 响应式布局总…...
PyBroker:利用 Python 和机器学习助力算法交易
PyBroker:利用 Python 和机器学习助力算法交易 你是否希望借助 Python 和机器学习的力量来优化你的交易策略?那么你需要了解一下 PyBroker!这个 Python 框架专为开发算法交易策略而设计,尤其关注使用机器学习的策略。借助 PyBrok…...
深入了解卷积神经网络(CNN):图像处理与深度学习的革命性技术
深入了解卷积神经网络(CNN):图像处理与深度学习的革命性技术 导语 卷积神经网络(CNN)是现代深度学习领域中最重要的模型之一,特别在计算机视觉(CV)领域具有革命性的影响。无论是图…...
彩色图像面积计算一般方法及MATLAB实现
一、引言 在数字图像处理中,经常需要获取感兴趣区域的面积属性,下面给出图像处理的一般步骤。 1.读入的彩色图像 2.将彩色图像转化为灰度图像 3.灰度图像转化为二值图像 4.区域标记 5.对每个区域的面积进行计算和显示 二、程序代码 %面积计算 cle…...
[Qt] Box Model | 控件样式 | 实现log_in界面
目录 1、样式属性 (1)盒模型(Box Model) 2、控件样式示例 (1)按钮 (2)复选框 (3)单选框 (4)输入框 (5)…...
内存与缓存:保姆级图文详解
文章目录 前言1、计算机存储设备1.1、硬盘、内存、缓存1.2、金字塔结构1.3、数据流通过程 2、数据结构内存效率3、数据结构缓存效率 前言 亲爱的家人们,创作很不容易,若对您有帮助的话,请点赞收藏加关注哦,您的关注是我持续创作的…...
IM聊天学习资源
文章目录 参考链接使用前端界面简单效果消息窗口平滑滚动至底部vue使用watch监听vuex中的变量变化 websocket握手认证ChatKeyCheckHandlerNettyChatServerNettyChatInitializer 参考链接 zzhua/netty-chat-web - 包括前后端 vue.js实现带表情评论功能前后端实现(仿…...
Redis 中 TTL 的基本知识与禁用缓存键的实现策略(Java)
目录 前言1. 基本知识2. Java代码 前言 🤟 找工作,来万码优才:👉 #小程序://万码优才/r6rqmzDaXpYkJZF 单纯学习Redis可以看我前言的Java基本知识路线!! 对于Java的基本知识推荐阅读: java框架…...
SpringMvc解决跨域问题的源码汇总。
看本文章前,需了解跨域的缘由。 其次,了解RequestMapping的基础原理 最后我们来解析SpringMvc是如何处理跨域问题的。 跨域信息配置 SpringMvc分为全局级别和局部级别两种,全局级别就是任何跨域请求都起作用。 全局级别 全局级别就是在配…...
25.1.17学习内容
B - 迷宫 Description 给定一个 NM 方格的迷宫,迷宫里有 T 处障碍,障碍处不可通过。 在迷宫中移动有上下左右四种方式,每次只能移动一个方格。数据保证起点上没有障碍。 给定起点坐标和终点坐标,每个方格最多经过一次…...
【开源免费】基于SpringBoot+Vue.JS欢迪迈手机商城(JAVA毕业设计)
本文项目编号 T 141 ,文末自助获取源码 \color{red}{T141,文末自助获取源码} T141,文末自助获取源码 目录 一、系统介绍二、数据库设计三、配套教程3.1 启动教程3.2 讲解视频3.3 二次开发教程 四、功能截图五、文案资料5.1 选题背景5.2 国内…...