LSTM时间序列预测:输入数据示例详解

使用LSTM模型进行时间序列预测时,正确组织输入数据至关重要。本文将以股票价格预测为例,详细说明如何构建LSTM模型的输入数据。

场景设定

假设我们想预测某股票未来一天的收盘价,并决定使用过去7天的收盘价作为输入特征。

数据准备pythonimport numpy as np

原始时间序列数据,每个元素表示某一天的收盘价original_data = [10.2, 10.5, 10.7, 10.9, 11.2, 11.0, 10.8, 11.1, 10.6, 10.3, 10.0, 9.8]

定义输入数据的序列长度和特征数量seq_length = 7 # 序列长度为7,即过去7天的收盘价作为输入特征num_features = 1 # 每个时间步只有一个特征,即收盘价

准备输入数据X = []y = []for i in range(len(original_data) - seq_length): X.append(original_data[i:i + seq_length]) # 输入数据为过去7天的收盘价 y.append(original_data[i + seq_length]) # 输出数据为下一天的收盘价

将输入数据和输出数据转换为NumPy数组X = np.array(X).reshape(-1, seq_length, num_features)y = np.array(y)

打印输入数据和输出数据的形状print('Input data shape: ', X.shape) # 输出:(5, 7, 1)print('Output data shape: ', y.shape) # 输出:(5,)

代码解读

  1. original_data列表存储了原始的股票收盘价数据。2. seq_length表示输入序列的长度,这里设置为7,代表使用过去7天的数据预测未来一天的价格。3. num_features表示每个时间步的特征数量,这里只有一个特征,即收盘价。4. 代码使用滑动窗口的方式,将连续7天的收盘价存储在X列表中,对应的下一天的收盘价存储在y列表中。5. 最后,将Xy转换为NumPy数组,并调整X的形状为(samples, seq_length, num_features),以便输入到LSTM模型中。

总结

通过以上步骤,我们成功将原始的时间序列数据转换成了LSTM模型所需的输入格式。实际应用中,你可能需要根据具体问题和数据集进行不同的数据预处理和特征工程操作。

LSTM时间序列预测:输入数据示例详解

原文地址: https://www.cveoy.top/t/topic/TSV 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录