首页 > 解决方案 > LSTM 分类的时间序列数据准备

问题描述

我正在尝试拟合简单的 LSTM 模型来对多元时间序列数据执行二进制分类。我对输入模型的时间序列数据准备步骤感到困惑。大多数在线资料都涵盖了使用 LSTM 进行预测(回归问题)的数据准备。就我而言,我正在尝试使用 LSTM 为分类准备数据。如何确保我在执行训练和测试拆分时不会弄乱时间序列和类平衡?我的班级标签高度不平衡。我的代码对 LSTM 分类是否正确?我很感激你的时间。谢谢!

样本数据:

在此处输入图像描述

sequence_length = 10
def generate_data(X, y, sequence_length = 10, step = 1):
    X_local = []
    y_local = []
    for start in range(0, len(data) - sequence_length, step):
        end = start + sequence_length
        X_local.append(X[start:end])
        y_local.append(y[end-1])
    return np.array(X_local), np.array(y_local)

X_sequence, y = generate_data(data.loc[:, "V1":"V4"].values, data.Class)

序列的形状:

X_sequence.shape, y.shape
((12237889, 10, 4), (12237889,))

训练和测试数据拆分:

training_size = int(len(X_sequence) * 0.7)
X_train, y_train = X_sequence[:training_size], y[:training_size]
X_test, y_test = X_sequence[training_size:], y[training_size:]

训练和测试数据的形状:

X_train.shape, X_test.shape
((8566522, 10, 4), (3671367, 10, 4))
y_train.shape, y_test.shape
((8566522,), (3671367,))

标签: pythontensorflowkerastime-serieslstm

解决方案


推荐阅读