python - 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,))
解决方案
推荐阅读
- java - JavaFX WebView:如何检查表单是否有效?
- ruby - 如何将范围分解为更小的非重叠范围
- c# - 有一个实现接口的类并实现扩展第一个接口的接口是错误的吗?
- javascript - Graphql 订阅 - 订阅字段必须返回 Async Iterable。收到:使用 withFilter 时未定义
- regex - 谷歌分析正则表达式:过滤登陆页面只有一个目录
- excel - 更改电子邮件中的参考列
- julia - 为什么结构和可变结构具有不同的默认相等运算符?
- javascript - Express API 在 Post 请求中不返回任何内容
- javascript - 如何在当前现有的 javascipt 对象中添加嵌套对象
- assembly - 反汇编中的奇怪函数前导:推送 ecx 但未使用