Python、R用深度学习神经网络组合预测优化能源消费总量时间序列预测及ARIMA、xgboost对比...

全文链接:https://tecdat.cn/?p=38726

分析师:Qingxia Wang

在能源领域,精准预测能源消费总量对制定合理能源战略至关重要。当前,能源消费预测分析主要运用单一模型(如灰色预测法、时间序列分析法等)和组合模型两种方式。然而,单一模型存在系统误差较高、预测结果可信度存疑等问题,提升预测精度成为亟待解决的关键点击文末“阅读原文”获取完整代码数据)。

组合预测旨在整合多个预测结果以获取更精准的单一预测,但受个体预测质量、数据特性及组合方法等因素影响,其优势并非必然呈现。过往诸多研究基于元学习等手段优化组合预测,虽各有成效却仍存在局限。

在此背景下,本文聚焦能源消费总量序列预测,运用如 ARIMA、GM (1,1)、BP 神经网络等单一模型及变权重组合预测模型开展分析,同时参考前沿的多任务优化等预测组合方法相关研究,对比不同模型预测精度,以期为我国能源战略决策提供可靠依据。

组合预测方法预测能源消费总量序列预测

在能源消费预测分析中,主要采用单一模型和组合模型两种方法进行分析。单一模型主要是利用灰色预测法、情景预测法、时间序列分析法、神经网络等研究方法。但是由于预测方法过多,预测结果可信度存在一定质疑,同时单一模型预测的系统误差较高,因此提高预测精度是重点需要解决的问题。

采用单一预测模型和组合预测模型比较分析,选取最优结果

任务/目标

采用单一预测模型和组合预测模型对能源消费总量进行预测分析,并根据模型预测结果比较预测精度选择最优预测模型。

数据源准备

从《中国统计年鉴》中选取了2000年至2020年的中国能源消费总量、经济水平、人口规模、能源结构以及产业结构的历史数据,分别使用GM(1,1)模型、ARIMA模型以及BP神经网络模型对中国未来5年的消费总量进行预测,并根据单一模型和组合模型的预测分析结果为我国未来制定合适的能源战略的决策提供参考。

建模

ARIMA,一般用于时间序列预测

ARIMA模型是指将非平稳时间序列转化为平稳时间序列,然后将结果变量做自回归(AR)和自平移(MA)。

GM(11)模型

GM(1,1)模型是在基于灰色预测理论的基础上,对于原始时间序列数据,通过累加生产一个新的递增的时间序列数据,使得其更具有规律性,并通过GM(1,1)中建立的微分方程,计算出相应的模型参数,从而得出数据预测公式,最终将往年的数据带入计算得出未来几年的消费总量预测值。

BP神经网络模型

BP神经网络模型是人工神经网络模型的一种,其来源是在基于人类大脑中的复杂的神经系统的运作机制,可以对输入的信息进行更加合理的分配以及处理,将不同的信息传入不同的神经元,并在一系列的处理过后再合并输出,得到最终结果。

变权重组合预测模型

变权重组合预测模型,即对每一个单一预测模型的预测值赋予不同的权重,再求其加权平均值,作为组合预测模型的预测结果。此模型的主要适用条件为,在已知各个单一模型预测精度的前提下,对预测精度较大的单一模型结果赋予较大权重值,对精度较小的单一模型赋予较小的权重值。

ARIMA模型预测结果

6a9521decdb2ec44f8f671f06976288a.png

GM(1,1)模型预测结果

a62910cd7aa68b23eaba8c8e4b0d7148.png

BP神经网络模型结果

5be37d69977faad89c57175d8be8da8b.png


点击标题查阅往期内容

f718c90c1f8361908bdacb8b25cfc8ca.jpeg

视频:Python深度学习量化交易策略、股价预测:LSTM、GRU深度门控循环神经网络|附代码数据

outside_default.png

左右滑动查看更多

outside_default.png

01

a4a83e387e91cc3202f07c6b205a8c65.png

02

d3f439ac2c32f314b30473ae332f58dc.png

03

db47bdf69b9cc4aeee6cd0e7a24d5b41.png

04

9c11077b6f2ac2050154565dd20f69a4.png

组合预测模型结果

研究结论

通过多重比较分析发现,基于ARIMA模型、GM(1,1)模型、BP神经网络模型三个单一预测模型的变权重组合模型预测的模型精度最优,其预测未来五年我国的能源消费值分别为515395.4987、525669.9064、534904.6054、542270.647、548358.9693;从中可以看出,在未来五年,我国能源消费总量将突破500000万吨标准煤,并且继续呈现不断上升的趋势。

基于多任务优化的预测组合方法研究|附数据代码

摘要

预测组合旨在运用多个预测结果来生成更为精准的单一预测。本文提出了一种多任务优化范式,它能够同步解决相关问题,并进一步丰富现有的预测运筹学方法。在训练阶段,会借助特定的优化模型去甄别对各时间序列而言既准确又多样的预测方法,同时利用神经网络对该优化模型的行为加以学习,待训练结束后,借助网络确定候选方法集。实验结果显示,相较于前沿的相关方法,本文所提方法可有效提升点预测的准确性。

引言

预测在诸多领域都占据着重要地位,像金融、能源、供应链以及库存管理等领域,精准的预测不可或缺。鉴于其重要性与复杂性,数学优化方法在预测领域应用颇多,并且随着优化与机器学习不断融合,这一趋势愈发凸显。
预测组合作为一种常用的预测手段,也就是把多个预测结果整合起来,进而得到更准确的单一预测。大量研究表明,它确实有助于提升预测的准确性,不过其优势并非是必然存在的,会受到诸如个体预测的质量、待预测数据的特性以及所采用的组合方法等多种因素影响。在预测组合相关文献中,涵盖了众多主题,例如组合时运用的方法、能带来的好处以及潜在的一些问题等。像存在过拟合的风险,也就是生成的方法可能过于灵活,在训练阶段对个体预测拟合得很好,但在对样本外数据进行准确预测时却表现不佳;还有可能产生过于复杂、难以解读的预测结果,进而给决策环节带来困难。而且,诸多研究也证实了,集成预测的成功与否很大程度上取决于组件模型的选择情况。

基于元学习的预测组合

元学习可用于选合适模型或优化基础预测权重。基于特征的预测常面临特征选取等挑战,其时间序列表示受关注,且在时间序列预测领域应用颇多。

Talagala 等人的 FFORMS 元学习法借随机森林依特征从九个基础预测器选最佳方法,还扩充时间序列集。Montero-Manso 等人改进出 FFORMA 框架,需提取手工特征、关联特征与误差来确定权重。

Di Gangi 的元学习系统以 FFORMA 特征为输入生成稀疏凸组合,有节省资源等优势但准确性稍逊。Lichtendahl 和 Winkler 分析 M4 竞赛策略,筛选后取截尾均值效果与 FFORMA 组合相近。

Kang 等人调整 FFORMA 框架纳入多样性提升了点预测准确性。Ma 和 Fildes、Li 等人也分别用卷积神经网络、图像转化思路提取特征并关联权重,用于预测方法。

36e318f5244c905b6637392e8b22fba1.png

元学习器:回归和分类任务

本文的元学习方法旨在确定一组权重,用于组合由多种方法生成的预测结果,目标是充分利用这些方法之间在准确性和多样性方面的特点。Talagala 等人的方法是将问题转化为传统的分类问题,也就是把各个预测方法编码为类别,对于每个时间序列而言,最佳方法就成为目标类别。但实际上,可能存在其他方法产生的预测误差与最佳方法相近的情况,所以相较于各方法产生的预测误差,所选定的具体类别重要性就没那么高了。
通常来说,寻找为各预测方法分配权重的函数这一问题往往会被构建成回归任务,其目标是最小化组合预测的误差。回归任务可以看作是每个实例具有不同类别权重的分类任务,再结合对特定系列赋予更高重要性的实例权重。这意味着回归任务的本质和分类任务密切相关。

所提出的元学习框架包含两个不同阶段,分别是元数据生成与模型训练(离线阶段)以及预测(在线阶段)。对于每一个时间序列,会将其划分为训练期和测试期,测试期的时长与预测的时间跨度相匹配。针对每个时间序列,先在训练期对池中各预测方法进行拟合,然后在测试期提取不同预测方法所产生的预测结果,将不同方法的预测结果汇总成一个矩阵,再与测试期的实际观测值进行对比,由此得到预测误差矩阵。从这个矩阵中,通过求解一个优化问题,把准确性和多样性信息汇总为一个二元标签向量。之后,利用梯度下降优化训练由深度神经网络实现的元学习器,使其最小化一个自定义的损失函数,目的在于估计各序列的组合权重,进而实现在线阶段能够为任意目标序列生成权重以及组合预测。

import tensorflow as tf
# 构建神经网络模型结构
model = tf.keras.Sequential(\[tf.keras.layers.Dense(32, activation='relu', input\_shape=(input\_size,)), # 定义输入层,input_size 表示输入数据的维度tf.keras.layers.Dense(16, activation='relu'), # 中间隐藏层tf.keras.layers.Dense(output\_size) # 输出层,output\_size 表示输出的维度
\])
# 编译模型,指定优化器、损失函数等参数
model.compile(optimizer='adam', loss='mse') # 使用 Adam 优化器,均方误差(mse)作为损失函数示例
# 进行模型训练,假设 x\_train 和 y\_train 分别是训练数据的输入和对应的目标输出
model.fit(x\_train, y\_train, epochs=num\_epochs, batch\_size=batch\_size) # num\_epochs 表示训练的轮数,batch_size 表示每批次数据的数量

上述代码演示了构建一个简单神经网络模型的常规步骤,先是定义了模型的结构,包含输入层、隐藏层和输出层,然后对模型进行编译配置优化器和损失函数等,最后使用给定的训练数据进行模型训练,通过这样的训练让模型学习合适的参数,以便后续用于预测等任务。

多任务学习框架下的元学习方法概述

我们的元学习旨在确定权重组合多种预测方法结果,利用方法的准确性与多样性优势。有的方法将选最佳方法视为分类问题有局限,实际找权重分配函数多为回归任务,且回归和分类任务联系紧密。

所提元学习框架分两阶段,离线阶段进行元数据生成与模型训练,在线阶段做预测。对时间序列划分训练、测试期,经系列操作得预测误差矩阵,汇总信息成标签向量,用深度神经网络做元学习器,通过梯度下降优化训练,最小化自定义损失函数来估计组合权重用于后续预测。

神经网络设计

(一)整体结构与任务划分

元学习模型的深度神经网络含回归、分类两个子网。回归子网通过最小化组合预测误差学习权重;分类子网按多样性标准选预测方法作为辅助任务,二者输出结合得到凸组合最终权重。

(二)回归子网

以原始时间序列为输入,经卷积层提取特征后输出未归一化权重。遵循准确性和多样性原则,将学习问题构建成多标签分类问题,以找出适合特定序列的基础模型。

(三)分类子网

采用二次规划(QP)特征选择方法生成训练标签,为各时间序列选满足准确性和多样性要求的预测方法子集。通过相关优化问题(如下式)及构建规则得标签向量:

e4a82ffac4e1bfb93fdb758ca9a88f03.png

  • 参数说明:

  • (𝐱):是一个 (M) 维向量,它代表着每种预测方法的相对重要性。

  • (\alpha):取值范围在([0, 1])内,其表示预测方法之间非冗余性以及它们相关性的相对重要程度,通过合理选择它来平衡目标函数中的二次项和线性项。

  • (𝐐_i):是一个 (M \times M) 的对称半正定矩阵,该矩阵主要体现了各预测方法之间的冗余情况,其元素是通过计算各预测方法间预测误差的皮尔逊相关系数得到的,也就是通过分析 (M) 种预测方法两两之间在预测误差方面的相关性,将这些相关性信息存储在这个矩阵当中,以此来反映预测方法间的冗余程度。

  • (𝐜_i):是一个 (M) 维的非负向量,它代表着对于第 (i) 个时间序列而言,每种预测方法的准确性情况,具体是通过相关计算方式将准确性信息量化并体现在这个向量的各元素当中。
    辅助神经网络通过解决多标签分类问题,输出表示某一预测方法是否适合用于预测对应时间序列的概率。

辅助神经网络通过解决多标签分类问题,输出表示某一预测方法是否适合用于预测对应时间序列的概率。

(四)子网输出结合

子网输出相乘后用 softmax 函数得估计权重,计算公式如下:

92af1b3f00e22fc285c8bdfa281cff39.png

元素相乘让两任务共享知识,合适方法对应权重大,不合适则权重小。

  • 参数说明:

  • (\hat{w}_j^i):表示针对第 (i) 个时间序列,第 (j) 种预测方法对应的估计权重。

  • (𝐨^ \hat{reg}_i):是回归子网输出的对于第 (i) 个时间序列的未归一化权重向量。

  • (𝐨^ \hat{cls}_i):是分类子网输出的对于第 (i) 个时间序列,各预测方法对应的概率向量,其每个元素表示相应预测方法基于准确性和多样性原则适合该时间序列的概率。

  • (\odot):代表元素对应相乘的运算,通过这样的乘法运算使得回归任务和分类任务之间可以共享知识。通常情况下,如果第 (j) 种预测方法比较适合第 (i) 个时间序列(也就是((𝐨^ \hat{cls}\_i)\_j)的值接近 (1)),那么整体网络输出的 (w^ \hat{j}\_i) 就会比较大;反之,如果该方法不太适合(即((𝐨^ \hat{cls}\_i)\_j)的值接近 (0)),则估计权重 (w^ \hat{j}\_i) 就会接近 (0)。

损失函数设计

(一)整体思路与各部分作用

优化多任务学习架构需权衡各任务重要性,回归任务是主预测组合任务更关键,分类任务起辅助作用。下面介绍损失函数各组成部分。

(三)分类损失 

分类子网预测输出标签对应的二元交叉熵损失,公式如下,需对整体神经网络权重最小化该损失:

a73ef4b0bb23b2860ce59c7bb30a0fdf.png

  • 参数说明:

  • (𝐨_{cls}^i):是第 (i) 个时间序列实际的分类标签向量,其元素取值为 (0) 或者 (1),表示相应的预测方法是否属于针对该时间序列所选出的准确且多样的预测方法子集。

  • (𝐨^ \hat{cls}_i):是分类子网预测输出的对于第 (i) 个时间序列,各预测方法对应的概率向量,其每个元素表示相应预测方法基于准确性和多样性原则适合该时间序列的概率,与前面提到的在子网输出结合部分的含义一致。

实验设置

按照现有研究的通常做法,本文采用评估所提方法的预测准确性。该数据集涵盖了 10 万个不同频率的时间序列。这里重点关注其中的年、季、月序列,它们占竞赛序列的 95%。环境为R 4.4.1和Python 3.9.18 。

每个时间序列都已经被划分成了两部分,即训练期(历史数据)和测试期(未来数据)。测试期的数据专门用于评估经过训练的元学习器所生成的预测结果,所以在训练时,元学习器所能知晓的信息只有 M4 数据集的训练部分。
年序列子集包含 2.3 万个序列,其长度从 13 到 835 个观测值不等,预测跨度为 6 个周期;季度序列子集包含 2.4 万个序列,有 8 个预测跨度,序列长度在 16 到 866 个周期之间;月序列子集则包含 4.8 万个时间序列,预测跨度为 18 个周期,样本观测值数量从 42 到 2794 不等。针对每种频率的序列,利用对应的 时间序列来生成输入数据,并且通过训练针对每组序列的不同元学习器来优化组合权重。
在将数据输入神经网络之前,要对所有输入的时间序列进行标准化处理,使得观测值的均值为 0,标准差为 1。为保证给定频率的所有输入时间序列长度一致,必要时会对数据进行填充和截断操作。具体而言,会针对每种类型的时间序列进行长度的统计分析,对于长度短于目标长度的序列,采取前置填充操作,也就是在序列开头添加 0,直至达到规定长度;而对于长度较长的时间序列,则执行截断操作,从开头去除部分观测值以达到固定长度。最终,对于年、季、月时间序列,分别将其长度设定为 32、64 和 128 个观测值。

结果

(一)训练数据集中方法的分布

为评估分类任务训练数据的类别不平衡程度,需要考察基础预测方法在各个标签中的分布情况。这些标签是在离线阶段通过求解(QP - LAB)并设定阈值 ττ 对结果进行舍入后,为训练序列生成的。

# 带有错误处理的相关矩阵计算
Dmat_or <- tryCatch({# 计算误差百分比的相关矩阵(对数据框df_errors中对应id的元素里的误差百分比进行转置后求相关矩阵)cor(t(df\_errors\[\[id\]\]$perc\_errors))
}, warning = function(e) {# 如果出现警告,返回单位矩阵(对角线上元素为1,其余为0,维度为n×n)diag(n)
})
if (norm(Dmat_or - diag(n)) == 0) {# 相关矩阵未定义的情况print(sprintf("序列 %d 的相关矩阵未定义", id))# 返回元素全为1.0的长度为n的向量return (rep(1.0, n))
}
Dmat <- nearPD((Dmat_or), corr=TRUE)$mat
if (sum(is.nan(df\_errors\[\[id\]\]$sOWA)) >= 1 || sum(is.infinite(df\_errors\[\[id\]\]$sOWA)) >= 1) {# 相关性向量未定义的情况print(sprintf("序列 %d 的相关性未定义", id))# 返回元素全为1.0的长度为n的向量return (rep(1.0, n))
}

经实际验证发现,将 ττ 设置为 1M时,就池中各方法的平衡性而言,能得到令人满意的结果。
为更直观地展示这一点,计算了每个基础学习器的相对占比情况,并通过图 3 展示相关统计数据

methods <- c('arima', 'ets', 'nnetar', 'tbats', 'stlm', 'rw', 'theta', 'naive', 'snaive')m <- length(methods)perc\_errors <- matrix(NA, nrow=m, ncol=ncol(df\[\[i\]\]$mat\_forecast))rownames(perc\_errors) <- rownames(df\[\[i\]\]$mat\_forecast)
#计算平均序列级总体加权平均(sOWA)sOWA <- matrix(NA, nrow=1, ncol=m)colnames(sOWA) <- methodsfor (j in 1:m) {# 百分比误差perc <- 100*(as.numeric(df\[\[i\]\]$ts\_test)-df\[\[i\]\]$mat\_forecast\[j, \])/(as.numeric(df\[\[i\]\]$ts_test))# 对称平均绝对百分比误差(smape)以及 smape\_naive\_2smape <- smape\_cal(as.numeric(df\[\[i\]\]$ts\_test), df\[\[i\]\]$mat_forecast\[j, \])naive\_2\_forec <- naive\_2(df\[\[i\]\]$ts\_train

102631c802af4165dc865b0f4783d33b.png

每个图表代表一组按频率分组的时间序列,横轴列出了各个方法,纵轴的柱状图描绘了对应预测方法在标签中出现的序列数量与该特定组中序列总数的比值。对于每组序列,都能观察到标签分布较为一致且近乎均匀,各方法的占比基本相当。这表明不存在明显的类别不平衡问题,因此在训练过程中,分类模型不会对任何特定方法产生偏向,从而增强了其在各类基础预测器中有效泛化的能力。一般情况下,如果某些基础预测器的代表性不足,可以调整阈值 ττ 来实现标签的充分平衡分布,或者采用诸如重采样方法、成本敏感损失函数等各种平衡技术。

(二)与基准方法的比较

将本文所提出的多任务预测组合方法与以下基准方法进行点预测性能的对比:

  • 简单平均方法(AVERAGE):将预测池中所有九个方法的预测结果用相等的权重进行组合。

  • Montero - Manso 等人提出的元学习器(FFORMA):运用 XGBoost 将手工构建的统计时间序列特征与预测误差相联系。

  • Kang 等人提出的方法(FFORMA - DIV):利用 XGBoost 将基于多样性的时间序列特征与预测误差相连接。

通过总体加权平均(OWA)和平均序列级总体加权平均(MsOWA)这两个误差指标来评估在 M4 测试数据集上的预测性能,OWA 和 MsOWA 的值越低,则表明预测准确性越高。同时,引入标准差(SD)来体现各序列间准确性的变化情况,从准确性风险的角度提供参考。
实验结果显示,本文的元学习器在 OWA 和 MsOWA 方面始终优于其他方法,甚至超越了同样融入多样性信息的前沿元学习器 FFORMA - DIV。相比之下,简单平均组合方法相较于所有元学习器,其表现总是欠佳。而且,第一个消融实验得出了很有价值的结论,单独带有回归分支的元学习器虽然能够生成较为准确的预测,与 FFORMA 相比有一定竞争力,但移除分类分支后,OWA 和 MsOWA 指标明显变差,预测准确性的下降可归因于基础学习器之间缺失了多样性信息。第二个消融实验凸显了损失函数中正交性项的重要性,将 λλ 设为 0 会对模型性能产生负面影响,这表明纳入正交性从实际效果来看能够提升结果,使子网能够更好地利用特定任务的时间序列特征。另外一个值得注意的发现是,与其他方法相比,本文的元学习器通过标准差衡量,始终能提供准确性风险更低的预测。
为了正式检验所考虑的各方法之间的性能是否存在统计学差异,采用了非参数 Friedman 检验以及事后多重比较中的最佳(MCB)Nemenyi 检验,这些检验是通过 R 包“tsutils”实现的。按照 Kourentzes 和 Athanasopoulos 的描述,Friedman 检验首先判断是否至少有一种方法与其他方法存在显著差异,如果存在这种差异,再运用 Nemenyi 检验来确定哪些预测方法组之间不存在统计学上的显著差异。这种检验方法的优势在于,不会对数据分布做任何假设,并且避免了对预测结果进行多次两两比较,因为那样可能会使检验结果产生偏差。基于 sOWA 误差,将这些检验应用于各数据频率,结果可按如下方式解读:平均排名越低,表示性能越好,如果两个预测组合方法的置信区间有重叠,则表明它们之间不存在显著的性能差异。根据图 4 展示的结果

6afa37045fcbd10698b5913a396d1110.png

可以看出:(i) 尽管 FFORMA - DIV 平均表现优于 FFORMA,但它们之间的差异在统计学上并不显著,这一发现与 Kang 等人近期研究中的记录相符;(ii) 本文所提方法 表现最佳,与其他元学习器生成的预测相比,除了除了在月度序列中,λ=0的预测区间稍有重叠外,在其他情况下都表现出了统计学上的显著差异。

(三)可视化解释

在完成训练后,可以将分类子网断开,并利用它针对输入的时间序列,预测某一预测方法符合准确性和多样性原则的概率。该网络借助卷积层从序列中提取相关特征,随后将这些特征映射到一个标签向量上,其中每个标签都对应着一种预测方法。然而,源于卷积神经网络(CNNs)的特征在可解释性方面常常存在困难。
为解决这一局限,并深入了解元学习器的决策过程,采用了梯度加权类激活映射(Grad - CAM)方法。Grad - CAM 是一种能够增强深度神经网络可解释性的方法,它通过生成可视化热图,凸显出输入中对网络针对特定类别决策有重大影响的区域。该技术利用模型预测类别得分相对于最后卷积层特征图的梯度,对于本文所研究的问题而言,通过计算这些梯度的加权总和,能够确定输入数据中对网络从预测方法池中选择特定预测方法有贡献的最具判别性的区域。而且,通过将 Grad - CAM 热图叠加到原始时间序列上,能够从视觉上理解网络的推理过程,有助于领域专家理解模型的决策机制。
在本研究中,设定阈值为 0.5,将每个预测概率转化为 0 - 1 二元标签,以此来计算预测类别得分的梯度。在图 5、图 6 和图 7 中:

cd135b1aef58ded44f3c1f7637444769.png0827b35ed2e0085f2c9778365a3e7ebb.png15b6c1657a4e7c2d68ba316476c12bda.png

针对网络所选择的各基础预测方法,分别分析了将 Grad - CAM 应用于年度、季度和月度时间序列样本所生成的热图。在每个时间步,都会被赋予一个介于 0 到 1 之间的重要性得分,接近 1 的值表示对应时间步对分类结果具有较高的重要性,而接近 0 的值则意味着该时间步对分类结果重要性较低。
观察这些图可以发现,热图在其所聚焦的输入时间序列的时间区域方面呈现出多样性,这意味着神经网络并非仅仅依赖于时间序列中存在的单一常见模式,而是会考虑多个相关的片段。而且,这些独特的关注区域表明,网络针对不同的方法利用了不同的特征,这很可能反映了各基础预测器独特的特性和优势。最后需要注意的是,虽然网络经过训练能够学习准确且多样的方法,但在多个方法之间,似乎存在一些热图值较高的共同区域,这些共同区域表明了在多种预测技术背景下具有重要意义的特定时间片段,这一现象也说明了输入时间序列中存在对多种预测方法有益的固有特征。

结论

本文运用多任务优化法提升预测性能,基于元学习关联时间序列特征与基础学习器预测。元学习器处理准确性组合和多样性选择任务,借深度神经网络解决相关问题并引入方法确定适宜方法。

实验显示,该方法较前沿元学习法提高点预测准确性,可视化解释提供了有益见解。其优势在于减轻筛选负担、兼容多种预测,局限是仅能做点预测,这为未来朝区间预测、概率密度预测等拓展指明方向。

关于分析师 

71bdca1fb8779d3981f50797352ccb92.png 

在此对 Qingxia Wang 对本文所作的贡献表示诚挚感谢,她毕业于南京大学,攻读国民经济学专业并获得硕士学位。其专业领域涉及数据整理以及数据统计分析,熟练掌握 SPSS、stata、Eviews 等工具。在相关工作中,凭借扎实的专业知识与娴熟的工具运用能力,为本文的研究提供了有力支持,助力各项分析与研究内容得以顺利开展与深入推进。

0d240e2502a5fd7ea2f99cac0892e02e.jpeg

本文中分析的数据、代码分享到会员群,扫描下面二维码即可加群! 

d9c1010537be549983362107e785e208.png


资料获取

在公众号后台回复“领资料”,可免费获取数据分析、机器学习、深度学习等学习资料。

ecfe8bcf8fe58a6bad6968dc70d2d900.jpeg

点击文末“阅读原文”

获取全文完整代码数据资料。

本文选自《Python、R用深度学习神经网络组合预测优化能源消费总量时间序列预测及ARIMA、xgboost对比》。

点击标题查阅往期内容

视频:Python深度学习量化交易策略、股价预测:LSTM、GRU深度门控循环神经网络|附代码数据

Python注意力机制Attention下CNN-LSTM-ARIMA混合模型预测中国银行股票价格|附数据代码

明星人脸识别基于VGG、MTCNN、RESNET深度学习卷积神经网络应用|附数据代码

MATLAB用CNN-LSTM神经网络的语音情感分类深度学习研究

Python深度强化学习对冲策略:衍生品投资组合套期保值Black-Scholes、Heston模型分析

R语言深度学习卷积神经网络 (CNN)对 CIFAR 图像进行分类:训练与结果评估可视化

R语言KERAS深度学习CNN卷积神经网络分类识别手写数字图像数据(MNIST)

MATLAB中用BP神经网络预测人体脂肪百分比数据

Python中用PyTorch机器学习神经网络分类预测银行客户流失模型

R语言实现CNN(卷积神经网络)模型进行回归数据分析

SAS使用鸢尾花(iris)数据集训练人工神经网络(ANN)模型

【视频】R语言实现CNN(卷积神经网络)模型进行回归数据分析

Python使用神经网络进行简单文本分类

R语言用神经网络改进Nelson-Siegel模型拟合收益率曲线分析

R语言基于递归神经网络RNN的温度时间序列预测

R语言神经网络模型预测车辆数量时间序列

R语言中的BP神经网络模型分析学生成绩

matlab使用长短期记忆(LSTM)神经网络对序列数据进行分类

R语言实现拟合神经网络预测和结果可视化

用R语言实现神经网络预测股票实例

使用PYTHON中KERAS的LSTM递归神经网络进行时间序列预测

python用于NLP的seq2seq模型实例:用Keras实现神经网络机器翻译

用于NLP的Python:使用Keras的多标签文本LSTM神经网络分类

b207e259a2982be849f46e4b56e2b5c1.jpeg

12a47572e594d897f743812f32e89e5a.png

7ca5c49c1725d9243c61b45379ae8083.png

b0ce2293021581615d471c79c0dc6e74.jpeg

96ab4ff180d1bb581802ce6f28d8e220.png

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【LLM-Agent】Building effective agents和典型workflows

note Anthropic的工程经验&#xff1a; 大道至简&#xff0c;尽量维护系统的简洁&#xff1b;尽量让过程更加透明&#xff08;因为你依赖的是LLM的决策&#xff0c;如果只看输出不看过程&#xff0c;很容易陷入难以debug的情况&#xff09;&#xff1b;对LLM需要调用的工具&am…

音视频入门基础:MPEG2-PS专题(4)——FFmpeg源码中,判断某文件是否为PS文件的实现

一、引言 通过FFmpeg命令&#xff1a; ./ffmpeg -i XXX.ps 可以判断出某个文件是否为PS文件&#xff1a; 所以FFmpeg是怎样判断出某个文件是否为PS文件呢&#xff1f;它内部其实是通过mpegps_probe函数来判断的。从《FFmpeg源码&#xff1a;av_probe_input_format3函数和AVI…

CSS——5. 外部样式

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>方法3&#xff1a;外部样式</title><link rel"stylesheet" href"a.css" /><link rel"stylesheet" href"b.css"/&g…

lenovo联想IdeaPad 15sIML 2020款(81WB)笔记本电脑原装出厂OEM预装系统Windows10镜像下载

适用机型 &#xff1a;【81WB】 链接&#xff1a;https://pan.baidu.com/s/1SF9uWaNdCKPkwKgsCWb18g?pwdh6qe 提取码&#xff1a;h6qe 联想原厂WIN系统自带所有驱动、带Recovery恢复重置、出厂主题壁纸、系统属性联机支持标志、系统属性专属LOGO标志、Office办公软件、联想…

WPS表格技巧01-项目管理中的基本功能-计划和每日记录的对应

前言&#xff1a; 在项目管理中&#xff0c;一般就是用些项目管理工具来管理这个任务和 task&#xff0c;但是就是要学这些工具很麻烦&#xff0c;比较好的方法&#xff0c;通用的方法就是用 Excel 表格去做&#xff08;这非常适合松散的团队组织&#xff09;&#xff0c;然后…

《前端web开发-CSS3基础-1》

文章目录 《前端web开发-CSS3基础》1.CSS引入方式2.选择器-标签和类3.选择器-id和通配符选择器4.画盒子5.字体修饰属性6.字体大小、粗细和倾斜6.1字体大小6.2 字体粗细6.3字体倾斜 7.行高8.字体族9.font复合属性10.缩进、对齐和修饰线10.1 文本缩进10.2 文本和图片对齐10.3 文本…

Mac M2基于MySQL 8.4.3搭建(伪)主从集群

前置准备工作 安装MySQL 8.4.3 参考博主之前的文档&#xff0c;在本地Mac安装好MySQL&#xff1a;Mac M2 Pro安装MySQL 8.4.3安装目录&#xff1a;/usr/local/mysql&#xff0c;安装好的MySQL都处于运行状态&#xff0c;需要先停止MySQL服务最快的方式&#xff1a;系统设置 …

网络IP协议

IP&#xff08;Internet Protocol&#xff0c;网际协议&#xff09;是TCP/IP协议族中重要的协议&#xff0c;主要负责将数据包发送给目标主机。IP相当于OSI&#xff08;图1&#xff09;的第三层网络层。网络层的主要作用是失陷终端节点之间的通信。这种终端节点之间的通信也叫点…

密钥管理系统在数据安全解决方案中的重要性

密钥管理系统在数据安全解决方案中占据着举足轻重的地位&#xff0c;其重要性体现在以下几个方面&#xff1a;一、保障数据机密性 密钥管理系统通过生成、存储和管理加密密钥&#xff0c;确保了数据的机密性。这些密钥用于加密和解密数据&#xff0c;只有授权用户才能访问和使…

关于PINN进一步的探讨

pinn 是有监督、无监督、半监督&#xff1f; PINN&#xff08;Physics-Informed Neural Networks&#xff0c;物理信息神经网络&#xff09;通常被归类为一种有监督学习的方法。在PINN中&#xff0c;神经网络的训练过程不仅依赖于数据点&#xff08;例如实验观测数据&#xff0…

设计形成从业务特点到设计模式的关联

规范和指引在应用架构、数据架构等各架构方向上形成规范性约束指导。同一个决策要点、架构单元在统一的架构原则指导下&#xff0c;会因业务特点差异有不同的实现&#xff0c;经过总结形成了最佳实践。在开展新应用的设计时&#xff0c;根据决策要点以及相关的业务特点&#xf…

Framebuffer 驱动

实验环境: 正点原子alpha 开发板 调试自己编写的framebuffer 驱动,加载到内核之后,显示出小企鹅 1. Framebufer 总体框架 fbmem.c 作为Framebuffer的核心层,向上提供app使用的接口,向下屏蔽了底层各种硬件的差异; 准确来说fbmem.c 就是一个字符设备驱动框架的程序,对…

STM32第十一课:STM32-基于标准库的42步进电机的简单IO控制(附电机教程,看到即赚到)

一&#xff1a;步进电机简介 步进电机又称为脉冲电机&#xff0c;简而言之&#xff0c;就是一步一步前进的电机。基于最基本的电磁铁原理,它是一种可以自由回转的电磁铁,其动作原理是依靠气隙磁导的变化来产生电磁转矩&#xff0c;步进电机的角位移量与输入的脉冲个数严格成正…

WPS-JS宏快速上手

WPS JS宏注意事项 代码后面可以不写分号“ ; ”&#xff1b; 缩进对程序的运行影响不大&#xff0c;但为了易读&#xff08;防止自己以后看不懂&#xff09;&#xff0c;还是乖乖写好&#xff1b; 代码是逐行运行的&#xff0c;意味着下面一行代码错了&#xff0c;前面的代码…

Conda 安装 Jupyter Notebook

文章目录 1. 安装 Conda下载与安装步骤&#xff1a; 2. 创建虚拟环境3. 安装 Jupyter Notebook4. 启动 Jupyter Notebook5. 安装扩展功能&#xff08;可选&#xff09;6. 更新与维护7. 总结 Jupyter Notebook 是一款非常流行的交互式开发工具&#xff0c;尤其适合数据科学、机器…

【CVPR 2024】【遥感目标检测】Poly Kernel Inception Network for Remote Sensing Detection

0.论文摘要 摘要 遥感图像&#xff08;RSIs&#xff09;中的目标检测经常面临几个日益增加的挑战&#xff0c;包括目标尺度的巨大变化和不同范围的背景。现有方法试图通过大核卷积或扩张卷积来扩展主干的空间感受野来解决这些挑战。然而&#xff0c;前者通常会引入相当大的背…

C++语言编程————C++的输入与输出

1.面向过程的程序设计和算法 在面向过程的程序设计中&#xff0c;程序设计者必须指定计算机执行的具体步骤&#xff0c;程序设计者不仅要考虑程序要“做什么”&#xff0c;还要解决“怎么做”的问题&#xff0c;根据程序要“做什么”的要求&#xff0c;写出一个个语句&#xff…

Fabric链码部署测试

参考链接&#xff1a;运行 Fabric 应用程序 — Hyperledger Fabric Docs 主文档 (hyperledger-fabric.readthedocs.io) &#xff08;2&#xff09;fabric2.4.3部署运行自己的链码 - 知乎 (zhihu.com) Fabric2.0测试网络部署链码 - 辉哥哥~ - 博客园 (cnblogs.com) 1.启动测试…

《米塔》为什么能突破160万销量?

1、跟完蛋美女有一定的类似之处&#xff0c;都是针对用户需求打造的商品&#xff0c;所以取得良好的销量不意外。 偏宅的玩家有陪伴、被重视、被爱的需求&#xff0c; 而厂商很懂&#xff0c;无论真人还是二次元都只是手段。 完蛋也是突破百万销量&#xff0c;成为黑马。 2、…

ESP32自动下载电路分享

下面是一个ESP32系列或者ESP8266等电路的一个自动下载电路 在ESP32等模块需要烧写程序的时候&#xff0c;需要通过将EN引脚更改为低电平并将IO0引脚设置为低电平来切换到烧写模式。 有时候也会采用先将IO接到一个按键上&#xff0c;按住按键拉低IO0的同时重新上电的方式进入烧写…