干货 | 中国石化化工高端新材料价格体系模型构建

7a154717b33169d919fe59868eaab1ed.png

以下内容整理自2023年夏季学期大数据能力提升项目《大数据实践课》同学们所做的期末答辩汇报。

3142bc0ed18d1895ad13fd3297f37482.png

随着石化行业市场日趋饱和,市场竞争日益激烈,企业利润空间不断被压缩,大多数石化企业急需转型开拓新市场,化工原料价格的波动对于石化企业的决策和利润都会产生直接影响,所以对于化工原料价格精确、高效的预测显得尤为重要。目前业界已有部分实践和相关技术,但仍然存在价格不全、小品类商品价格信息难以获取等痛点。基于此,本项目以1,4-丁二醇为例,先对产品价格影响因素进行分析,并构建化工品价格时序预测模型,寻找化工品价格变化规律,最终实现模型的在线部署。

11762eb4126ce5661e061d7b88c878f4.png

首先对数据进行预处理。采用front fill的方式填补缺失值,将颗粒度统一为日度,删去缺失值过多的数据和明显高度相关的变量。第二步采用多种方法对数据作进一步筛选,第三步尝试采用两种计量模型、三种机器学习模型和三种深度学习模型进行构建模型和模型比选,通过比选最终决定采用深度学习模型。最后结合前端开发实现模型在网页的调用。

我们获得的原始数据包括175个变量在1293个日期的数据,经过预处理之后,最终得到95个变量在1885个日期的数据。得到95个变量之后,我们又通过计量方法、XGBoost以及Transformer三种方法对输入变量进行进一步筛选。其中相关分析通过相关系数判断变量间关系密切程度,XGBoost模型可以量化并输出原始变量在预测过程中的重要程度,Transformer可以输出各个变量的因果门因子,据此可以挑选出与因变量因果关系密切的变量。结合这三种方法能够得到变量之间的相关性以及在模型当中的重要性。最终我们将结果整理成了变量筛选分析报告,最终简化为包含11种化工品、54个特征的重要变量。

基于上述变量我们进行预测建模。首先是RNN模型的框架。我们对二维原始数据进行归一化和时间切片,得到下图所示三维模型输入,三个维度分别是batch_size,window_size和feature_size。window_size指的是我们使用从现在开始回溯多少天的数据进行价格预测。我们使用了五层RNN,每个单层RNN中包括添加噪声、隐藏层、输出层以及dropout层和归一化层,经过5层输出之后,我们对最后一层的三维输出进行window_size维度的取平均之后,就可以得到最终的预测结果。在训练过程中,我们可以调整的超参数包括在不同预测任务下的window_size,以及是否添加噪声,dropout值以及初始学习率的衰减程度。

ee6767e48b41feaef4d0fe45b375dd23.png

下图展示了RNN模型的预测结果,其中蓝线代表真实值,红线代表经过滑动平均的预测值。从图上可以看出,除了90天以外,其他的预测天数下的红线基本上都可以较好地反映出真实价格的变化趋势。而90天之所以预测效果较差,可能因为在90天局部变化的剧烈程度是最大的,因而预测难度也相对最大。

fae36cf749c86bd60a55524464230275.png

下图展示了RNN的具体预测误差。可以看出平均相对误差均满足了预先要求,与上图所示相同,90天的误差相对最大。

ea2b583abb219f6579fd3b9875a0dc67.png

我们也进一步尝试了LSTM网络,该模型包括输入层、dropout层和输出层。因为输入输出维度相同,因此我们使用了全连接层输出,将最终的价格维度转化为1,可以调整的超参数包括LSTM的堆叠数量、层数、dropout值以及学习率,其他设置与RNN相同。

LSTM的误差相对大一些,但在较长时间间隔的预测是满足小于15%的要求的。但相比RNN并没有很明显的优势,所以后续并未使用。

dd905336c4216640568db5f9e0b670f0.png

此外我们还通过使用时间序列Transform模型(简称TST)进行1,4-丁二醇价格预测。TST价格模型如上图所示。除了将日期拆分为年、月、日三个特征并对数据进行标准归一化外,其输入与输出均与RNN和LSTM模型相同。TST模块主要由输入模块、三层的Transformer encoder block和FC阶层组成。在编码部分,除了输入编码外,通过加入sin、cosin位置编码表征了时间上的先后顺序。我们选择调整的超参数包括初始学习率、T样本数、dropout概率、历史时间跨度等,最终得到了六个不同预测时间间隔下的TST预测模型,其拟合与预测效果如下图所示。

668fd32a95b495276e54535feadbacf3.png

下表展示了TST训练集和预测集上的误差。可以看到,TST模型在不同预测时间间隔下的相对误差在11%-16%左右,总体而言,TST模型具有一定时序预测能力,但就其效果而言,略逊于RNN模型,且在时间跨度越大的情况下,差别越明显。

33010597a80f32019826dda5e585d930.png

本次大数据实践我们从数据预处理、特征筛选、价格预测建模与demo设计四方面出发,我们首先补全数据、统一数据粒度并初步删除缺失值过多数据,综合运用三种方法筛选出了11种相关化学品共54个重要特征。之后我们基于RNN、LSTM以及TST模型进行了1,4-丁二醇的价格预测并进行了demo设计,我们的试用版界面能满足简洁易用、响应快、平均相对误差小于15%及安全方面的要求。

76cb9b7a88180f691b616f7d47317820.png

在demo中,上传相关变量的历史数据并选择相应的预测时间间隔后,页面会弹出模型选择框,并弹出建议选择的预测模型。在点击提交按钮后,页面会出现预测时间点的1.4-丁二醇价格,并通过可交互的ECharts图表展示1.4-丁二醇的每日数据及变化趋势,以上就是本次汇报的全部内容。

编辑:文婧

校对:林亦霖

f5b883647d94d0d2225275faae19876d.png

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

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

相关文章

4、wireshark使用教程

文章目录 一、wireshark简介二、环境三、wireshark抓包三、wireshark过滤器使用 一、wireshark简介 Wireshark是使用最广泛的一款「开源抓包软件」,常用来检测网络问题、攻击溯源、或者分析底层通信机制。 Wireshark抓包原理: 单机情况:电脑…

ESP32主板-MoonESP32

产品简介 Moon-ESP32主板,一款以双核芯片ESP32-E为主芯片的主控板,支持WiFi和蓝牙双模通信,低功耗,板载LED指示灯,引出所有IO端口,并提供多个I2C端口、SPI端口、串行端口,方便连接,…

基于PHP语言研发的抖音矩阵系统源代码开发部署技术文档分享

一、概述 本技术文档旨在介绍抖音SEO矩阵系统源代码的开发部署流程,以便开发者能够高效地开发、测试和部署基于PHP语言的开源系统。通过本文档的指引,您将能够掌握抖音SEO矩阵系统的开发环境和部署方案,从而快速地构建出稳定、可靠的短视频S…

输电线路故障诊断(Python代码,逻辑回归、决策树、随机森林、XGBoost和支持向量机五种不同方法诊断)

效果视频:输电线路故障诊断(Python代码,逻辑回归、决策树、随机森林、XGBoost和支持向量机五种不同方法诊断)_哔哩哔哩_bilibili 项目文件 code.py装载的是英文版本,图上显示英文标签及坐标,Chinese.py装载…

【Unity】ShaderGraph应用(浮动气泡)

【Unity】ShaderGraph应用(浮动气泡) 实现效果 一、实现的方法 1.使用节点介绍 Position:获取模型的顶点坐标 Simple Noise:简单的噪声,用于计算顶点抖动 Fresnel Effect:菲涅耳效应,用于实现气泡效果 计算用节点 Add&…

Pytorch(GPU)环境安装

winR:启动cmd; 输入nvidia-smi 查看cuda的配置 (1) 安装CUDA 地址:https://developer.nvidia.com/cuda-downloads 详细参考:安装CUDA与CUDNN与Pytorch(最新超级详细图文版本2023年8月最新)_pytorch安装cudnn_LyaJpunov的博客-C…

驱动开发---基于gpio子系统编写LED灯的驱动

一、GPIO子系统相关API 1.解析GPIO相关的设备树节点 struct device_node *of_find_node_by_path(const char *path) 功能:根据设备树节点路径解析设备树节点信息 参数: path:设备树所在的节点路径 /mynode0X12345678 返回值:成…

【力扣周赛】第 362 场周赛(⭐差分匹配状态压缩DP矩阵快速幂优化DPKMP)

文章目录 竞赛链接Q1:2848. 与车相交的点解法1——排序后枚举解法2——差分数组⭐差分数组相关题目列表📕1094. 拼车1109. 航班预订统计2381. 字母移位 II2406. 将区间分为最少组数解法1——排序贪心优先队列解法2——差分数组 2772. 使数组中的所有元素…

安全厂商安恒信息加入龙蜥社区,完成 与 Anolis OS 兼容适配

近日,杭州安恒信息技术股份有限公司(以下简称“安恒信息”)签署了 CLA(Contributor License Agreement,贡献者许可协议),正式加入龙蜥社区(OpenAnolis),并成为…

通过java代码在指定目录生成一个指定内容的vue文件

可能很多人觉得 用java写vue会更快 或者有什么固定格式 但其实 那需要构建一套非常完整的系统架构 如果什么都没构建 那么 用前端编辑器 肯定是比你用java写的快 而且写的好的 我们直接创建一个类 叫 Main 编写代码如下 import java.io.FileWriter; import java.io.IOExcepti…

element ui - el-table 表头筛选

element ui - el-table 表头筛选 前言情况一:表格没有分页方法代码 前言 场景:根据表头筛选出表格中符合条件的数据; 效果: 筛选结果: 情况一:表格没有分页 方法 在列中设置 filters 和 filter-metho…

Cpp/Qt-day020918Qt

目录 完善登录框 点击登录按钮后,判断账号(admin)和密码(123456)是否一致,如果匹配失败,则弹出错误对话框,文本内容“账号密码不匹配,是否重新登录”,给定两…