干货 | 石化产品机器学习价格模型开发和SEI石化产品价格分析体系构建

news2024/11/25 8:20:19

a21813cfa8c8435d2a9aca2da8feca0a.png

以下内容整理自大数据能力提升项目必修课《大数据系统基础》同学们的期末答辩汇报。

98bb54a48a15cc364a33da2da1a4d372.png

我们的报告将分为六个部分,第一部分是研究背景与内容。受疫情影响以来,石化行业市场日趋饱和,竞争激烈,同时利润也受到压缩,大部分石化产业都需要转型开拓新市场,但同时又难以获取一些小品种化工品价格。所以我们希望通过机器学习方法实现敏锐捕捉市场化工品价格变化趋势,同时能够推算小品种化工品价格的目标。长此以往,我们希望能够建立属于我们自己的化工品价格体系,为石化行业提供新的机遇。

cf57d65de1f83e4372c4fc7b7538ca25.png

上图展示了我们工作的三个部分,第一部分是石化产品的相关性的分析,第二部分,我们希望通过六种机器学习方法建立石化产品的价格模型,最后,我们构建了一个信息管理的网站,希望能够支持价格模型在实际工程项目中的应用。

c841bc4e78f870d84e8b36e9122a06eb.png

这是我们的技术流程图。在右边放了我们采用的六种机器学习模型,它们都是通过sklearn和torch框架搭建完成,我们的信息管理网站采用的是python语言中的Flask框架作为网页后端,JavaScript语言作为网页前端,同时使用CSS和ECharts库来完成。

b7e505790c337003bee7a4541a379382.png

第二部分是数据统计与分析。我们首先把所有的数据进行汇总,以日期列对齐,然后画出相关性热力图,然后以相关性系数大于等于0.7作为标准筛选出所有组合,再结合化工品的产业链上下游关系以及数据存在情况,共分为八个模型组合。这里以模型三为例,我们首先对它进行描述性统计分析,可以看到数据取值是在2018-2022年近五年当日化工品价格数据,它的价格数据波动幅度较大,标准差较大,但是某些化工品变化趋势大体一致,说明价格变化趋势具有较高的相关性。

9c466cb44c77618b465c1993a3c9075e.png

接下来是模型构建和模型结果部分。针对确定的输入输出组合,我们选用了六种机器学习模型来对价格缺失的化工品进行预测。比较各个机器学习方法,在测试集的预测结果在10%和5%误差内的比例,然后进行横向和纵向的比较。总体来看,横向比较上展示了六种模型、八个模型组合下的预测结果,我们可以发现K近邻、决策树和随机森林取得了比较好的结果。神经网络的结果较差,我们推测可能是因为这个模型比较复杂而实际应用场景的预测数据比较简单,可能存在一些过拟合的问题。相反,一些简单模型反而能取得更好的结果。不同输入组合的纵向比较上,我们发现不同组合下最优模型一般是不同的,所以我们需要进行模型比选。

以下几张图展示了对不同机器学习模型进行横向和纵向比较的结果。这里以模型一的四氢呋喃为例,展示了随机森林、K近邻、决策树和LSTM四种模型的预测结果以及1:1的直线和相关系数的R^2值,可以发现R^2都在0.97以上。纵向比较以K近邻模型为例,选取四种化工品,同样可以发现它们的预测情况都非常好,R^2都在0.99以上。

21758469732f936c99696285df004ea0.png

接下来是模型结果分析,我们考虑到后续实际工作的应用场景,对原数据集进行了年平均,然后以年平均尺度数据来进行验证,以每个化工品品种误差最小模型来选择最优预测模型。下图横轴展示了19种需要预测的化工品,纵轴是误差百分比,可以发现对于每个化工品得到的最优预测模型预测误差在10%以内,总体在5%左右。

bc7bc477411b24c01dbb60de038f2225.png

我们以上一步选到的最优模型在实际工作场景中进行验证,比较最优模型在验证数据集中的表现(也就是红线),并且与上一步年平均数据集结果(蓝线)以及验证数据集的最优模型(紫线)进行比较。因为蓝线和训练数据集来自同一批数据,所以它的预测效果最好,紫线表示在实际工作场景数据中可能达到的自由结果,红线表示以训练数据集优选模型来对工作场景数据进行预测的实际结果,也表示我们实际工作场景的预测情况,可以发现这里除了部分化工品存在数据缺失和离群值的情况,总体上模型表现良好,误差控制在10%左右。

2317d823718d7464ce049a7baa9848c5.png

但为了真实业务场景应用,我们还搭建了网页应用平台。下面由我演示网页使用方法。首先,左上角是中石化工程建设有限公司的logo,它同时也就是一个home键,然后左下方是这个输入的窗格,右边是我们的首图。往下翻是注释,基于12000余条数据建立的机器学习模型的19种化工品的价格预测工具。我们以丁基橡胶为例。选择了它之后,这个ECharts后面就会体现出动态化往年数据参考,把鼠标放上去,还可以看到具体数值。接下来是输入大宗化工品品种的含税价格,选择使用的模型。我们选中线性回归模型,然后提交按钮,按下之后马上返回参考价格,也可以与右侧往年数据的动态价格进行参考,非常方便业务人员线下使用。

0f9ef2a08c142f013385f8ce7fe4d965.png

最后总结一下。首先这个项目填补了小宗商品的市场价格的信息的空白,并且也提升了市场决策的准确性和效率。在数据统计分析方面,我们的相关性分析和描述性统计都为后续的数据产出做了准备,也为模型的建立提供了有价值的信息。在机器学习预测部分,我们提高了价格预测准确度,并且通过控制误差也确保了模型的可靠性和准确性。在信息系统建设方面,我们建的网页也非常方便公司的业务人员进行实际的业务的运用,也提高了工作效率,为后续的产品价格的决策提供了及时和可靠的价格预测结果。总之,我们的项目是一个非常完整并且有实际应用的一个项目,以上就是我们展示的全部内容。

编辑:文婧

校对:汪雨晴

5853899b062f504ba6112a683db298c5.png

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

谈个人信息保护

一、互联网生存指南:通过哪些方法来加强个人信息保护? 1.密码管理:选择安全可靠的密码,并避免使用容易猜测的密码。不要在不同的网站和应用程序使用相同的密码,以防止未经授权的访问。 2.双重身份验证:使…

AIMAX集群配置sdfstudio容器记录

AIMAX集群配置sdfstudio容器记录 一、登录二、测试三、通过Filezilla传输数据四、通过第三方私有镜像直接创建环境方式1 从dockerhub中下载方式2 上传github中的dockerfile方式3 上传dockerhub中的第三方镜像1. 在ubuntu在安装docker2. 下载第三方镜像3. 修改hosts4. 下载证书5…

【重拾计划】[NOIP1998 提高组] 车站

今日题目 [NOIP1998 提高组] 车站 题目描述 火车从始发站(称为第 1 1 1 站)开出,在始发站上车的人数为 a a a,然后到达第 2 2 2 站,在第 2 2 2 站有人上、下车,但上、下车的人数相同,因此…

python字典:揭秘无序元素的奥秘之旅

前言 在编程中,数据的组织和管理是一个关键的方面。对于处理和操作数据,Python 提供了许多强大的数据结构,其中最常用和灵活的之一就是字典(Dictionary)。 无论您是初学者还是有经验的开发者,掌握字典的基本知识是非常重要的。本…

解决PyInstaller打包selenium脚本时弹出driver终端窗口

解决PyInstaller打包selenium脚本时弹出driver终端窗口 找到service.py C:\Users\XXX\AppData\Roaming\Python\Python39\site-packages\selenium\webdriver\common\service.py添加creationflags 在第77行添加: creationflags134217728使用PyInstaller打包 pyinstaller -F -w -…

8.2.3 【Linux】xz, xzcat/xzmore/xzless/xzgrep

8.3 打包指令: tar 8.3.1 tar 其实最简单的使用 tar 就只要记忆下面的方式即可: 压 缩:tar -jcv -f filename.tar.bz2 要被压缩的文件或目录名称 查 询:tar -jtv -f filename.tar.bz2 解压缩:tar -jxv -f filename…

Lesson2-1:OpenCV基本操作

图像的基础操作 学习目标 掌握图像的读取和保存方法能够使用OpenCV在图像上绘制几何图形能够访问图像的像素能够获取图像的属性,并进行通道的分离和合并能够实现颜色空间的变换 1 图像的IO操作 这里我们会给大家介绍如何读取图像,如何显示图像和如何…

uniapp-设置全屏

需求&#xff1a;就是想要小程序不受限制&#xff0c;可以把图片或者文字全屏的展示&#xff0c;如下图 vue代码如下&#xff1a; <template><view class"content"><image class"image-bg" src"/static/logo.png" /><imag…

Python GUI编程利器:Tkinker中的微调节器和滑块(6)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 和猫妹学Python&#xff0c;一起趣味学编程。 今日目标 实现下面效果&#xff1a; 微调节器(Spinbox类) 微调节器可以通过箭头调整所需的数值。 创建微调节器对象语法格式…

ChatGPT助力校招----面试问题分享(十)

1 ChatGPT每日一题&#xff1a;阻抗匹配的方法有哪些 问题&#xff1a;阻抗匹配是什么 ChatGPT&#xff1a;阻抗匹配是一种电路设计技术&#xff0c;用于确保电路中各个组件之间的电阻、电感和电容等参数相互匹配&#xff0c;以最大程度地传输信号或功率 当阻抗不匹配时&…

7/2~7/4学习成果总结

这几天初步的了解了一下Java&#xff0c;然后写了几道题&#xff1a; 下面总结一下学Java的时候遇到的一易错的小问题以及总结&#xff1a; 1. java里面只能在一个源文件里有一个public类&#xff0c;但是入口main那个可以理解为public static是一个整体也就是不属于public&a…

『C/C++养成计划』C++中的静态库和动态库|GCC|Makefile|CMake学习

C中的静态库和动态库|GCC|Makefile|CMake学习&#xff01; 文章目录 一. 什么是库二. 静态库1.1. 静态库生成1.2. 静态库制作举例1.2.1 准备测试程序1.2.2 生成静态库 1.3. 静态库的使用 三. 动态库3.1. 为什么需要动态库3.2. 生成动态链接库3.3. 动态库制作举例3.4. 动态库的…

【JUC并发编程】Callable接口创建线程

一、介绍 与继承Thread类和实现Runnable接口两种创建线程方式的区别 ① Callable接口可以有返回值 ② Callable接口可以抛出异常 ③ 执行方法不同&#xff0c;call()方法和run()方法 二、代码演示 继承Thread类和实现Runnable接口的方式创建线程 package callable;import java…

celery Periodic Tasks 周期任务

celery Periodic Tasks 周期任务 https://docs.celeryq.dev/en/latest/userguide/periodic-tasks.html /home/mike/work/celery-5.3.1/examples/periodic-tasks myapp.py """myapp.pyUsage::# The worker service reacts to messages by executing tasks.(w…

pip安装指定包,找不到如何解决?

背景&#xff1a;现如今&#xff0c;在跑神经网络的时候&#xff0c;需要配置一些开源项目从而需要指定一些特定环境是必不可少的一个步骤&#xff0c;但是很多时候使用pip安装包的时候&#xff0c;总是找不到需要的版本。比如&#xff0c;今天需要配置open3d 0.15.1版本的环境…

群晖 nas 升级内存 手记(DS423+)

题外话&#xff1a; 我原来用的是群晖DS218&#xff0c;也用了5年了&#xff0c;今年5月份突然不能开机了&#xff0c;感觉故障不大&#xff0c;群晖官方又不好联系&#xff0c;非常麻烦。只好邮递到北京一家所谓的维修群晖的维修点&#xff0c;他们说维修费最多不超过200元&am…

Visual studio 快捷键(个人记录加深印象)

1、CtrlK 后 Ctrlx 插入代码片段快捷键&#xff08;或 编辑”>“IntelliSense”>“插入代码片段&#xff09; 注&#xff08;摘抄&#xff09;&#xff1a;该列表包含用于创建类、构造函数、for 循环、if 或 switch 语句等的代码片段

java定义数组的三种类型总结

三种定义数组的格式如下&#xff1a; int[] arr1new int[10]; int[] arr2{1,2,3,6}; int[] arr3new int[]{1,2,3,4,5,6,7,22}; 注意&#xff1a;数组的length是一个属性&#xff0c;而字符串的length()是一个方法了&#xff01;&#xff01;&#xff01;虽然都是求的他们各…

自定义 MVC 框架思想

目录 一、MVC设计模式 1. 什么是MVC 2. 三层架构与MVC的区别 二、自定义MVC框架 1. 为什么要学习自定义MVC框架 2. 自定义MVC的工作原理 3. 自定义MVC框架的优势 三、自定义MVC实例流程 1. mvc三层架构的弊端 2. 自定义MVC的工作流程 2.1 子控制器&#xff08;…

【flutter滑动拼图验证码】

Java后台使用aj_captcha插件&#xff0c;提供/captcha/get&#xff08;获取captcha底图和拼块图片&#xff09;、/captcha/check&#xff08;验证拼图偏移量&#xff09;这两个接口。并且这个插件在GitHub上有源码。 1.先准备好aj_captcha的工具类&#xff1a; import dart:co…