当前位置: 首页 > news >正文

2024年MathorCup数模竞赛C题详解

C题持续更新中

  • 问题一
  • 问题二
  • 代码
    • 混合ARIMA-LSTM模型构建
    • 完整数据与代码
      • 第一问
      • 第二问

问题一

问题一要求对未来30天每天及每小时的货量进行预测。首先,利用混合ARIMA-LSTM模型进行时间序列预测。ARIMA模型擅长捕捉线性特征和趋势,而LSTM模型处理非线性关系和长期依赖。通过结合这两种模型,可以提高预测精度。具体步骤包括:

  1. 建立ARIMA模型,通过差分运算和ARMA模型组合来处理时间序列数据。
  2. 建立LSTM模型,利用其长短期记忆能力处理复杂的时间序列模式。
  3. 结合ARIMA和LSTM模型的预测结果,通过自适应混合算法调整权重,以提高预测准确性。
    在这里插入图片描述
    在这里插入图片描述

问题二

问题二要求在考虑运输线路改变的前提下,对未来30天每天及每小时的货量进行预测。解决方法涉及建立神经网络模型和聚类算法。具体步骤包括:

  1. 利用K-means算法对分拣中心的货量进行聚类,以理解不同类型货物的分布规律。
  2. 建立BP神经网络模型,通过特征选取和网络训练,预测货量变化。
  3. 基于聚类和BP神经网络的预测结果,分析运输线路变化对货量的影响,并通过回归图和折线图直观展示货量变化情况。在这里插入图片描述

代码

混合ARIMA-LSTM模型构建

clc
clear
close all;
load('appendix1.mat') %读入附件1
mape_record = [];
W_record = [];
pre_record = [];
for c=1:size(appendix1,2) % 遍历每一个分拣中心data = appendix1{1,c}; %将分拣中心另存出来train_num = 5; %用几期的值作为参考来训练权重%% 下面是ARIMA计算权重[y_train_ARIMA]=ARIMA(data(1:end-train_num,3),train_num); y_ture_ARIMA = data(end-train_num+1:end,3);wmape_ARIMA = sum(abs(y_train_ARIMA-y_ture_ARIMA)./y_ture_ARIMA);% 下面计算MAPEAPE_ARIMA = abs(y_ture_ARIMA - y_train_ARIMA) ./ abs(y_ture_ARIMA);  MAPE_ARIMA = mean(APE_ARIMA);%% 下面是LSTM计算权重ref = 30; %参考历史的多少期[y_train_LSTM]=LSTM(data(1:end-train_num,3),ref,train_num);y_ture_LSTM = data(end-train_num+1:end,3);wmape_LSTM = sum(abs(y_train_LSTM-y_ture_LSTM)./y_ture_LSTM);% 下面计算MAPEAPE_LSTM = abs(y_ture_LSTM - y_train_LSTM) ./ abs(y_ture_LSTM);  MAPE_LSTM = mean(APE_LSTM);%% 下面计算权重W_ARIMA = (1/wmape_ARIMA)/((1/wmape_ARIMA)+(1/wmape_LSTM));W_LSTM = 1-W_ARIMA;W_record(c,1) = data(1,1); %记录idW_record(c,2) = W_ARIMA; %记录ARIMAMAPEW_record(c,3) = W_LSTM; %记录LSTMMAPE%% 下面记录MAPEmape_record(c,1) = data(1,1); %记录idmape_record(c,2) = MAPE_ARIMA; %记录ARIMAMAPEmape_record(c,3) = MAPE_LSTM; %记录LSTMMAPE%% 下面正式预测pre_step = 30; %预测未来多少期的值% ARIMA[pre_ARIMA]=ARIMA(data(:,3),pre_step); % LSTM[pre_LSTM]=LSTM(data(:,3),ref,pre_step);% 混合pre = pre_ARIMA*W_ARIMA + pre_LSTM*W_LSTM;pre_record(1,c) = data(1,1); %记录idpre_record(2:1+pre_step,c) = pre; %记录预测值
end

完整数据与代码

第一问

在这里插入图片描述

第二问

在这里插入图片描述

完整资料获取,关注公众号云顶数模,或者直接点击下方咨询~

http://www.lryc.cn/news/337558.html

相关文章:

  • 【简单讲解如何安装与配置Composer】
  • 深入理解Apache ZooKeeper与Kafka的协同工作原理
  • js解密心得,记录一次抓包vue解密过程
  • redis-哨兵模式
  • 自动化测试中的SOLID原则
  • tencentcloud-sdk-python-iotexplorer和tencent-iot-device有什么区别
  • Spring day1
  • 设计模式: 行为型之中介者模式(18)
  • 计算机网络的起源与发展历程
  • 2024-4-12-实战:商城首页(下)
  • 一、flask入门和视图
  • Selenium+Chrome Driver 爬取搜狐页面信息
  • SpringBoot:一个注解就能帮你下载任意对象
  • oracle全量、增量备份
  • React Router 5 vs 6:使用上的主要差异与升级指南
  • 基于LNMP部署wordpress
  • openGauss_5.1.0 企业版快速安装及数据库连接:单节点容器化安装
  • 微信小程序 uniapp+vue城市公交线路查询系统dtjl3
  • 2024年MathorCup数模竞赛B题问题一二三+部分代码分享
  • Ubuntu日常配置
  • GMSSL-通信
  • linux 磁盘分区Inode使用率达到100%,导致网站无法创建文件报错 failed:No space leftondevice(
  • 探索Python库的奇妙世界
  • SQL Server 存储函数(funGetId):唯一ID
  • 当你的项目体积比较大?你如何做性能优化
  • 第6章:6.3.2 一张表总结正则表达式的语法 (MATLAB入门课程)
  • VBA 实现outlook 当邮件设置category: red 即触发自动创建jira issue
  • 办公软件巨头CCED、WPS迎来新挑战,新款办公软件已形成普及之势
  • 架构设计-订单系统之订单系统的架构进化
  • 性能升级,INDEMIND机器人AI Kit助力产业再蜕变