时间序列预测在数据分析中扮演着至关重要的角色,其应用范围从预测股市趋势到天气预报,无所不包。在本文中,我们将深入探讨使用 PyTorch 和 LSTM(长短期记忆)神经网络进行时间序列预测的领域。在此过程中,我们将揭示支撑预测准确性的关键预处理步骤。
时间序列数据本质上是在固定时间间隔内进行的一组观测值。时间序列预测旨在根据历史数据中检测到的模式和趋势来估算未来的数值。移动平均线和像 ARIMA这样的传统方法在捕捉数据中的长期依赖关系时往往力不从心。LSTM是一种循环神经网络,它擅长捕捉随时间变化的依赖关系,并能够处理复杂的模式。
时间序列预测的实现
前置准备
- Numpy:用于处理数组
- Pandas:用于处理关系型或标记数据
- Matplotlib:用于数据可视化
- Seaborn:用于数据可视化
- DateTime:用于处理日期和时间
- MinMaxScaler:用于数据归一化
- PyTorch:用于构建用于训练的神经网络
数据集
在这里,我们使用了 Yahoo Finance 来获取股市数据集。
要安装 Yahoo Finance,我们可以使用以下命令:
!pip install yfinance
步骤 1:导入库并设置配置
这一步涉及导入对于数据处理、可视化、机器学习和深度学习任务至关重要的各种库。
Python
CODEBLOCK_a60101ba
步骤 2:加载并检查数据
从 Yahoo Finance 下载苹果公司 (AAPL) 的历史股价数据。使用 INLINECODEc97c0a45 和 INLINECODE3fc8757e 检查数据,以了解其结构和内容。
Python
CODEBLOCK_ce555593
输出:
[*********************100%***********************] 1 of 1 completed
Open High Low Close Volume
Date
1990-01-02 0.261498 0.263253 0.245703 0.247458 183198400
1990-01-03 0.263253 0.266764 0.263253 0.266764 207995200
1990-01-04 0.264132 0.272029 0.261498 0.268519 221513600
1990-01-05 0.265009 0.268519 0.259744 0.265009 123312000
1990-01-08 0.266764 0.266764 0.259744 0.263253 101572800
DatetimeIndex: 8940 entries, 1990-01-02 to 2025-07-01
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Open 8940 non-null float64
1 High 8940 non-null float64
2 Low 8940 non-null float64
3 Close 8940 non-null float64
4 Volume 8940 non-null int64
dtypes: float64(4), int64(1)
memory usage: 419.1 KB
None
步骤 3:绘制数据图
定义一个函数,为 DataFrame 中的每一列绘制折线图。这有助于可视化数据中的趋势和模式。
Python
“
import