我的数据应该使用哪种lstm体系结构以及应该执行哪些数据处理

时间:2019-07-10 19:36:37

标签: keras deep-learning lstm loss-function convergence

我正在尝试构建LSTM架构来预测疾病发生率(0%-100%)。我的输入是一个维数为4760x10的数组(按每个城镇每个年龄段的患病人数,咨询数量.....)输入。我的输出或y为患病率。

我是机器学习的新手,我尝试了一些技巧,例如更改优化器,层节点数和辍学值,并且我的模型没有收敛(最低mse = = 616.245)。我也尝试使用“ MinMaxScaler”缩放数据。你们能帮我一些改变架构的建议或一些数据处理来帮助模型收敛吗?

这是给我mse = 616.245的lstm模型

def build_modelz4():
 model = Sequential()
 model.add(LSTM(10, input_shape=(1, 10), return_sequences=True))
 model.add(LSTM(84, return_sequences= True))  
 model.add(LSTM(84, return_sequences=False))  
 model.add(Dense(1,activation='linear'))
 model.compile(loss='mean_squared_error', optimizer='adam', metrics=['mean_squared_error'] )
 model.summary()
 return model
lstmz4 = build_modelz4()
checkpointer = ModelCheckpoint(filepath="weightslstmz4.hdf5", verbose=1, save_best_only=True)
newsclstmhis = lstmz4.fit(trainX,trainY,epochs=1000,batch_size=221, validation_data=(testX, testY) ,verbose=2, shuffle=False, callbacks=[checkpointer])

请注意,当我使用ann模型时,它收敛于mse = 0.8。所以用lstm它应该收敛 并先谢谢您

1 个答案:

答案 0 :(得分:-1)

4760对于LSTM来说是非常小的尺寸,而且看起来像是一个非常简单的分类模型,请尝试使用诸如svm之类的简单算法进行处理,但是如果您坚持使用深度学习,请使用带有密集层的顺序模型代替比该层多几层,绝对可以为您带来更好的效果。