多变量时间序列二进制分类的输入格式

时间:2018-05-17 10:02:38

标签: python machine-learning keras time-series theano

我正在尝试使用LSTM模型对多变量时间序列数据进行二进制分类。我在一天中收集了七个属性约100天(即100个大小的阵列[9000,7])。这些数组中的每一个都具有单个分类状态1或0。

我已经开始尝试构建最简单的模型,因为我是Keras和Machine Learning的新手,但是当我尝试训练时,我一直在输入形状方面遇到错误。例如,我的第一层:

model = Sequential()
model.add(Conv2D(32, (3,3), input_shape=(9000,7,1), activation='relu'))
...
model.fit(x=X_train, y=Y_train, epochs=100) 

使用float64类型的X_train,大小为(100L,9000L,7L),我得到一个错误:

  

ValueError:检查输入时出错:预期conv2d_11_input有4个维度,但得到的数组有形状(100L,9000L,7L)

我已经尝试过更改批量大小和时间数而没有成功,那么有人可以解释如何正确地重塑我的输入吗?我错过了一些简单的事吗?

1 个答案:

答案 0 :(得分:0)

我怀疑你想使用Conv1D(3D数据),不是吗? 您正在使用Conv2D(4D数据=图片)。

对于Conv1D和任何RNN图层,例如LSTM,您的输入是3D数据,input_shape应为input_shape=(9000,7)

输入数据应该是一个形状为(100,9000,7)的数组,该数组已经可以通过错误消息的内容完成。

假设每一天都是一个单独的序列而你不想连接几天。