基于ARIMA-CNN-LSTM预测模型研究(Python代码实现)

简介: 基于ARIMA-CNN-LSTM预测模型研究(Python代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥


🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。


⛳️座右铭:行百里者,半于九十。


📋📋📋本文目录如下:🎁🎁🎁


目录


💥1 概述


1.1 ARIMA 模型


1.2 CNN - LSTM 模型


📚2 运行结果



🎉3 参考文献


🌈4 Python代码实现


💥1 概述

文献来源:


f86d02721b0b4e5989b98211159abdd8.png


1.1 ARIMA 模型

ARIMA 模型由 Box 和 Jenkins 于 20 世纪 70 年代提出,是一种著名的时间序列预测方法,该模型的基本思想是将数据看成一个时间序列对象,再使用数学模型对该时间序列进行描述,训练完成的模型可以通过时间序列的过去值、现在值来预测未来的数据及趋势,在一些工业设备强度预测等问题中得到了广泛的应用。由于实际的水文序列具有非线性非平稳的特点,而 ARIMA 模型引入了差分,对于非线性非平稳的时间序列也具有良好的处理效果,并对水文序列中的线性关系具有良好的学习效果,故本文采用 ARIMA 模型对未来水位变化情况进行预测。


ARIMA 模型由自回归( AR) 模型、移动平均模型( MA) 和差分法( I) 组成,其表达式如下。


自回归( AR) 模型用来描述现值与过去值之间的关系,使用指标自身的数据对自身进行预测。


a2decd886a874184871c75e136ae44a7.png


1.2 CNN - LSTM 模型

考虑到影响因素众多,故本文使用了一种基于 CNN - LSTM 的多变量预测模型,将数据的多个变量输入进神经网络模型中,通过 CNN 对数据进行特征提取,其中原理如下。


定义一段水位数据序列为


bc1b032672eb4b09819ae6b77468536c.png

661a1527319943d5923d057ea73b389f.png


8dc00667291749f89165e24437d756a6.png

be113f93d5ff4cbf8131401fca630171.png


细胞状态Ct由输入门和遗忘门的变化决定,其表达式如下:


e034ddb25c6249489c205634e4fb560f.png


📚2 运行结果

plt.figure(figsize=(10, 3),dpi=150)
plt.title('AQI')
plt.xlabel('time')
plt.ylabel('AQI')
plt.plot(data_raw, 'r', label='AQI')
plt.legend()
plt.show()


774a14ff90a645e2aa8ef2bce33dbd81.png


plt.figure(figsize=(9, 2),dpi=150)
plt.plot(history.history['loss'])
plt.title('model loss')
plt.ylabel('loss')
plt.xlabel('epoch')
plt.show()


f2f3faf24fd244a9ad1a41efdfbb0fe7.png


plt.figure(figsize=(10, 4),dpi=150)
plt.plot(test_data, label="Actual", color='red',linewidth=4)
plt.plot(range(len(x_train)+timestep+1,len(new_data)),draw_test, color='blue',label='Prediction',linewidth=2.5,linestyle="--")
plt.title('Prediction', size=15)
plt.ylabel('AQI',size=15)
plt.xlabel('time/day',size=15)
plt.legend()
plt.show()


422c43526a30411ba17f51eb86e18d48.png


🎉3 参考文献

部分理论来源于网络,如有侵权请联系删除。


[1]陈帅宇,赵龑骧,蒋磊.基于ARIMA-CNN-LSTM模型的黄河开封段水位预测研究[J].水利水电快报,2023,44(01):15-22.DOI:10.15974/j.cnki.slsdkb.2023.01.002.


🌈4 Python代码实现


相关文章
|
1天前
|
缓存 测试技术 开发者
探索Python中的装饰器:简化你的代码之旅
【9月更文挑战第6天】本文将深入探讨Python中一个强大而神秘的特性——装饰器。我们将通过实际例子揭示装饰器的工作原理,并展示如何利用它们来简化和增强你的代码。无论你是初学者还是有经验的开发者,这篇文章都将为你打开一扇门,让你的代码更加优雅和高效。
|
3天前
|
缓存 数据挖掘 Python
探索Python中的装饰器:简化代码,提高效率
【9月更文挑战第4天】在Python的世界里,装饰器是那些隐藏在幕后、默默发挥作用的英雄。它们以优雅的姿态简化我们的代码,提升程序的可读性和效率。本文将带你揭开装饰器的神秘面纱,通过实际案例展示其魅力所在,让你的编程之旅更加顺畅。
|
3天前
|
存储 Python
Python编程入门:从零开始的代码之旅
【9月更文挑战第4天】本文将带领初学者步入Python的世界,通过简明的语言和直观的例子,逐步揭示编程的乐趣。我们将一起构建基础的数据结构,探索控制语句的奥秘,并实现简单的函数。无论你是编程新手还是希望巩固基础,这篇文章都是你理想的起点。让我们开始吧,一步步将代码块搭建成思维的宫殿!
15 2
|
1天前
|
机器学习/深度学习 人工智能 算法
探索人工智能:机器学习的基本原理与Python代码实践
【9月更文挑战第6天】本文深入探讨了人工智能领域中的机器学习技术,旨在通过简明的语言和实际的编码示例,为初学者提供一条清晰的学习路径。文章不仅阐述了机器学习的基本概念、主要算法及其应用场景,还通过Python语言展示了如何实现一个简单的线性回归模型。此外,本文还讨论了机器学习面临的挑战和未来发展趋势,以期激发读者对这一前沿技术的兴趣和思考。
|
文字识别 算法 前端开发
100行Python代码实现一款高精度免费OCR工具
近期Github开源了一款基于Python开发、名为Textshot的截图工具,刚开源不到半个月已经500+Star。
100行Python代码实现一款高精度免费OCR工具
|
3天前
|
数据采集 机器学习/深度学习 数据挖掘
探索Python编程之美:从基础到进阶
【9月更文挑战第4天】在数字时代的浪潮中,编程已成为一种新兴的“超能力”。Python,作为一门易于上手且功能强大的编程语言,正吸引着越来越多的学习者。本文将带领读者走进Python的世界,从零基础出发,逐步深入,探索这门语言的独特魅力和广泛应用。通过具体代码示例,我们将一起解锁编程的乐趣,并理解如何利用Python解决实际问题。无论你是编程新手还是希望提升技能的开发者,这篇文章都将为你打开一扇通往高效编程的大门。
|
4天前
|
数据采集 机器学习/深度学习 数据挖掘
探索Python编程之美:从基础到实战
【9月更文挑战第3天】本文旨在通过深入浅出的方式,带领读者领略Python编程语言的魅力。我们将从基本语法入手,逐步深入至高级特性,最终通过实战案例将理论知识与实践操作相结合。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的见解和技巧。
|
2天前
|
存储 开发者 Python
探索Python编程之美
【9月更文挑战第5天】在这篇文章中,我们将一起踏上一场Python编程的奇妙之旅。从基础语法到高级特性,我们将一步步揭开Python语言的神秘面纱。你将学习如何编写清晰、高效的代码,掌握函数、类和模块的使用,以及理解面向对象编程的核心概念。此外,我们还将探讨异常处理、文件操作等实用技能。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供宝贵的知识和技巧,让你在编程的道路上更加从容自信。
|
3天前
|
API C语言 开发者
Python如何成为跨平台编程的超级巨星:系统调用深度探索
【9月更文挑战第5天】Python 作为一种高级编程语言,凭借简洁的语法、丰富的库支持和强大的社区,迅速在编程界崭露头角。尤其在跨平台编程方面表现卓越,这得益于其解释器设计和对系统调用的深度整合。CPython 采用 C 语言编写,可为不同操作系统编译,使 Python 程序无需修改即可运行。Python 标准库提供了操作系统功能的抽象,如文件操作、进程控制等,隐藏了底层差异,实现了代码的统一。
19 7
|
4天前
|
存储 人工智能 数据挖掘
探索Python编程:从基础到进阶的旅程
【9月更文挑战第3天】在编程的世界里,Python以其简洁明了的语法和强大的功能库赢得了无数开发者的青睐。本文将带你走进Python的世界,从基础的数据类型和控制结构开始,逐步深入到面向对象编程(OOP)和异常处理等高级主题。无论你是初学者还是有一定经验的开发者,这篇文章都能为你提供新的视角和思考。
14 8