首页> 中国专利> 一种基于对抗网络的碳交易市场动态价格预测方法

一种基于对抗网络的碳交易市场动态价格预测方法

摘要

本发明公开了一种基于对抗网络的碳交易市场动态价格预测方法,包括以下步骤:S1、构建碳交易数据集;S2、构建对抗网络;S3、利用碳交易数据集训练对抗网络,得到训练好的对抗网络;S4、输入随机噪声至训练好的对抗网络,使用训练好的对抗网络完成动态价格预测,本方法考虑了我国碳交易市场建设尚处于初级阶段,碳交易数据相对匮乏的现状,采用对抗网络构建交易因素与碳价之间的概率模型,实现碳价的预测。

著录项

  • 公开/公告号CN117273790A

    专利类型发明专利

  • 公开/公告日2023-12-22

    原文格式PDF

  • 申请/专利权人 四川大学;

    申请/专利号CN202311311150.X

  • 发明设计人

    申请日2023-10-10

  • 分类号G06Q30/0201;G06Q30/0203;G06Q30/018;G06Q40/04;G06Q50/26;

  • 代理机构成都正德明志知识产权代理有限公司;

  • 代理人李聪

  • 地址 610064 四川省成都市一环路南一段24号

  • 入库时间 2024-04-18 19:58:53

说明书

技术领域

本申请涉及价格预测技术领域,具体而言,涉及一种基于对抗网络的碳交易市场动态价格预测方法。

背景技术

预测碳交易价格数据的传统方法在模型中引入了时间依赖性,使其能够捕捉价格趋势和周期性波动;通过训练网络,学习到过去价格变化与其他相关因素之间的复杂关系,进而用于未来价格的预测。

这种方法需要大量的数据用于训练,而碳交易市场相对较新,数据可能有限,导致模型的泛化能力受限,并且数据较少的情况下,模型可能会在训练数据上表现良好,但在新数据上表现不佳。

发明内容

针对现有技术中的上述不足,本发明提供的一种基于对抗网络的碳交易市场动态价格预测方法解决了现有技术因的原始数据少带来的预测不精确的问题。

为了达到上述发明目的,本发明采用的技术方案为:提供一种基于对抗网络的碳交易市场动态价格预测方法,包括以下步骤:

S1、构建碳交易数据集;

S2、构建对抗网络;

S3、利用碳交易数据集训练对抗网络,得到训练好的对抗网络;

S4、输入随机噪声至训练好的对抗网络,使用训练好的对抗网络完成动态价格预测。

进一步地:所述步骤S1包括以下分步骤:

S11、根据官方公布的碳交易价格数据,制作原始碳交易价格数据集;

S12、提取排除异常值的特征;

S13、设置contamination参数,使用LOF算法,计算原始碳交易价格数据集中每个数据样本的LOF分数;

S14、根据LOF分数排序,并根据设置的contamination参数,剔除LOF分数最高的部分,得到碳交易数据集。

进一步地:所述步骤S2中构建的对抗网络包括生成器和鉴别器;

所述生成器采用卷积神经网络,所述鉴别器包括卷积神经网络和长短时记忆网络。

进一步地:所述生成器包括依次连接的输入层、第一批标准化层、第一卷积层、第一激活层、第二批标准化层、第二卷积层、第二激活层、第三批标准层、第一转置卷积层、第三激活层、第四批标准化层、第二转置卷积层、第四激活层和输出层。

进一步地:所述鉴别器包括依次连接的输入层、第五批标准化层、第三卷积层、第五激活层、第六批标准化层、第四卷积层、第七批标准化层、第三转置卷积层、第六激活层、第八批标准化层、LSTM层、全连接层和输出层。

进一步地:所述步骤S3包括以下步骤:

S31、将碳交易数据集中的样本和标记上正确标签;

S32、将生成器和鉴别器进行初始化操作,并设置对抗轮次;

S33、使用标记有正确标签的碳交易数据集样本对鉴别器进行训练;

S34、使用生成器生成的数据对鉴别器进行训练;

S35、重复执行步骤S33-S34,直到执行次数达到预设的对抗轮次,得到训练好的对抗网络。

进一步地:所述步骤S34包括以下分步骤:

S341、生成服从高斯分布的随机噪声,将随机噪声转换为PyTorch张量后输入生成器;

S342、通过生成器将PyTorch张量转化为生成器的输出,并将生成器的输出输入至鉴别器进行对抗训练;

S343、通过鉴别器输出一个范围在[0,1]的真实概率值,并将真实概率值用于前向传播;

S344、计算生成器和鉴别器的损失函数;

S345、通过Adam优化器最小化生成器和鉴别器的损失函数,进行生成和鉴别器的参数更新。

进一步地:所述步骤S3中,还引入了TensorBoard;所述TensorBoard用于监控、可视化和分析对抗网络模型的训练过程和性能。

进一步地:所述对抗网络使用MAPE进行指标的量化,其公式为:

其中,n为样本数量,y

本发明的有益效果为:

1.本发明利用对抗网络能够较好地捕获非线性数据关系之间的规律的能力,CNN可以挖掘数据变量间的关系,以此来解决原始数据少和预测不精确的问题;

2.使用正常数据和随机生成的数据进行对抗网络的训练,可以为对抗网络提供更丰富的信息,使其能够更准确地学习和捕捉数据的内在模式;

3.对抗网络中还引入了TensorBoard用于用于监控、可视化和分析对抗网络模型的训练过程和性能,实现了实时观察模型的训练进展并在必要时进行调整。

附图说明

图1为基于对抗网络的碳交易市场动态价格预测方法流程图。

图2为对抗网络生成器网络结构图。

图3为对抗网络鉴别器网络结构图。

具体实施方式

下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。

如图1所示,在本发明的一个实施例中:

提供了一种基于对抗网络的碳交易市场动态价格预测方法,包括以下步骤:

S1、构建碳交易数据集;

S2、构建对抗网络;

S3、利用碳交易数据集训练对抗网络,得到训练好的对抗网络;

S4、输入随机噪声至训练好的对抗网络,使用训练好的对抗网络完成动态价格预测。

在本发明的一个实施例中:

所述步骤S1包括以下分步骤:

S11、根据官方公布的碳交易价格数据,制作原始碳交易价格数据集;

S12、提取排除异常值的特征;

S13、设置contamination参数,使用LOF算法,计算原始碳交易价格数据集中每个数据样本的LOF分数;

S14、根据LOF分数排序,并根据设置的contamination参数,剔除LOF分数最高的部分,得到碳交易数据集;

在本实施例中,提取4个排除异常值的特征,分别为“开盘价(元/吨)”,“收盘价(元/吨)”,“最高价(元/吨)”,“最低价(元/吨)”;contamination参数设置为0.1,故剔除LOF分数最高的10%。

所述LOF分数的计算公式为:

其中,LOF(i)表示数据点i的LOF分数;Neighbors(i)表示数据点i的邻近样本,lrd

在本发明的一个实施例中:

所述步骤S2中构建的对抗网络包括生成器和鉴别器;

所述生成器采用卷积神经网络,所述鉴别器包括卷积神经网络和长短时记忆网络;

所述生成器的卷积神经网络以DCGAN为基础进行扩展,所述鉴别器的输入数据经过合适的形态转换后,被引入卷积神经网络和LSTM网络结构进行处理,这个过程中,为了精炼数据的内在特征,仅保留了网络结构中的最后一层状态。

在本发明的一个实施例中:

所述生成器包括依次连接的输入层、第一批标准化层、第一卷积层、第一激活层、第二批标准化层、第二卷积层、第二激活层、第三批标准层、第一转置卷积层、第三激活层、第四批标准化层、第二转置卷积层、第四激活层和输出层;

所述输入层包括100个特征的输入;

所述第一卷积层包括100个输入通道和60个输出通道,卷积核大小为1;

所述第一激活层采用LeakyReLU激活函数,具有0.2的负斜率;

所述第二卷积层包括60个输入通道和128个输出通道,卷积核大小为1;

所述第二激活层采用LeakyReLU激活函数,具有0.2的负斜率;

所述第一转置卷积层包括128个输入通道和60个输出通道,卷积核大小为1;

所述第三激活层采用ReLU激活函数;

所述第二转置卷积层包括60个输入通道和100个输出通道,卷积核大小为1;

所述第四激活层采用Tanh激活函数;

所述输出层输出一个[-1,1]之间的值作为生成的输出。

在本发明的一个实施例中:

所述鉴别器包括依次连接的输入层、第五批标准化层、第三卷积层、第五激活层、第六批标准化层、第四卷积层、第七批标准化层、第三转置卷积层、第六激活层、第八批标准化层、LSTM层、全连接层和输出层。

本实施例中,所述第三卷积层的输出通道数量为200,卷积核大小为1;

所述第五激活层为带有泄露线性整流单元(LeakyReLU)激活函数的层,所述第五激活层通过引入负斜率,处理负值的情况,增加模型的非线性表达能力;

所述第四卷积层输入通道为200,输出通道为100,卷积核大小为1;

所述第三转置卷积层用于上采样操作,输入通道为100,输出通道为50,卷积核大小为1;

所述第六激活层包括ReLU激活函数,对上一层的输出进行非线性变换,其中,

其中,x是输入值,a是一个小的正数,通常接近于零,表示负斜率;当x大于零时,LeakyReLU与标准的ReLU函数相同,即输出为x;当x小于等于零时,LeakyReLU会乘以a,引入一个小的线性成分。

所述LSTM层包括2层LSTM单元,可以处理时序关系,其接受50维的输入特征,并将其转化为20维的隐藏状态,通过全连接层,将LSTM的输出映射到1维,用于判别输入数据的真实性;

所述全连接层用于将LSTM的输出特征映射到一个维度为1的空间;

所述输出层包括Sigmoid激活函数,用于将全连接层的输出值映射到范围[0,1]之间,表示数据的真实性概率。

在本发明的一个实施例中:

所述步骤S3包括以下步骤:

S31、将碳交易数据集中的样本和标记上正确标签;

S32、将生成器和鉴别器进行初始化操作,并设置对抗轮次;

S33、使用标记有正确标签的碳交易数据集样本对鉴别器进行训练;

S34、使用生成器生成的数据对鉴别器进行训练;

S35、重复执行步骤S33-S34,直到执行次数达到预设的对抗轮次,得到训练好的对抗网络。

在本发明的一个实施例中:

所述步骤S34包括以下分步骤:

S341、生成服从高斯分布的随机噪声,将随机噪声转换为PyTorch张量后输入生成器;

S342、通过生成器将PyTorch张量转化为生成器的输出,并将生成器的输出输入至鉴别器进行对抗训练。

所述生成器的损失函数loss_G表示生成器的输出与真实标签g_real_label之间的差异;所述鉴别器的损失函数loss_D包括真实数据损失loss_d_real和生成数据损失loss_d_fake;

其中,真实数据损失loss_d_real表示判别器对真实数据的预测误差与真实标签real_label之间的差异;生成数据损失loss_d_fake,表示判别器对生成数据的预测误差与虚假标签fake_label之间的差异;

所述虚假标签fake_label为生成器生成的假数据上的标签。

在本发明的一个实施例中:

生成器和鉴别器的损失函数采用二元交叉熵(BCELoss),对于鉴别器而言,实际数据标记为1,生成数据标记为0在对抗网络的训练过程中,通过持续的交互与对抗性策略,逐步演进至纳什均衡状态,从而实现最优模型参数的收敛。经过此反复迭代协同优化的过程,生成器和判别器之间的动态平衡逐渐确立,达到了理论上的最佳状态;

二元交叉熵BCE(y,p)的公式为:

BCE(y,p)=-[y.log(p)+(1-y)log(1-p)]

其中,y表示实际标签(可以是0或1),p表示模型的预测概率;

当y=1时,损失函数只考虑模型预测为1的部分,即-log(p);

当y=0时,损失函数只考虑模型预测为0的部分,即-log(1-p)。

在本发明的一个实施例中:

使用forward方法定义前向传播逻辑,其包括以下步骤:

将输入数据重新调整为形状(-1,100,7),并通过卷积神经网络部分处理;

将卷积神经网络部分处理后的数据调整为形状(-1,50),传递到LSTM层;

通过全连接层和Sigmoid激活函数,生成最终的输出。

在本发明的一个实施例中:

所述对抗网络还会将PyTorch张量转换为NumPy数组,以便后续处理和可视化;其中NumPy数组每行具有7列数据,以便适应保存为Excel文件的格式;打印生成的数据的形状,以便观察生成的数据维度;

为了确保在打印时显示所有数组元素,设置了NumPy的打印选项,将生成的数据从标准化后的形式转换回原始数据,使用之前用于标准化的scaler对数据进行逆变换之后对数据进行四舍五入,保留一位小数,以确保数据的可读性和一致性。

最终,通过指定文件路径和名称,将生成的数据保存为Excel文件,使得能够随时查看生成器在不同训练阶段生成的样本数据,以监控训练进度和生成质量。这个过程对于监督对抗网络(GAN)的训练和调试非常有帮助。

在本发明的一个实施例中:

引入Adam优化器优化判别器和生成器参数,Adam优化器用于调整判别器和生成器的权重和偏置,以最小化损失函数,从而改善它们的性能;

Adam的优化公式为:

其中,θ

其中,

m

其中,g

在本发明的一个实施例中:

所述对抗网络的目标优化函数为:

其中,V(D,G)是判别器和生成器之间的博弈目标函数,D为鉴别器的参数,G为生成器的参数,preal(x)是真实数据的分布,即碳交易数据集中的样本的分布,p

在本发明的一个实施例中:

所述步骤S3中,还引入了TensorBoard;所述TensorBoard用于监控、可视化和分析对抗网络模型的训练过程和性能;

通过将训练过程中的损失函数、精度、学习率等指标可视化,实时观察模型的训练进展并在必要时进行调整。同时,它提供了嵌入向量、降维可视化等功能,有助于理解数据的分布和模型的表现;

在本实施例中,定义了一个保存目录save_dir,并根据当前时间生成一个具有时间戳的保存路径save_path,用于存储TensorBoard日志。创建了一个SummaryWriter对象writer,用于写入TensorBoard日志到上述生成的路径。在每个训练周期的循环中,使用writer.add_scalar()函数将损失值添加到TensorBoard日志中,以进行可视化;每个训练周期结束后,当前周期的判别器和生成器损失值将被记录到TensorBoard日志中,从而可以使用TensorBoard工具进行可视化分析和观察训练过程的趋势和变化。

在本发明的一个实施例中:

所述对抗网络使用MAPE进行指标的量化,其公式为:

其中,n为样本数量,y

在本发明的描述中,需要理解的是,术语“中心”、“厚度”、“上”、“下”、“水平”、“顶”、“底”、“内”、“外”、“径向”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的设备或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或隐含指明的技术特征的数量。因此,限定由“第一”、“第二”、“第三”的特征可以明示或隐含地包括一个或者更多个该特征。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号