我正在尝试构建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它应该收敛 并先谢谢您
答案 0 :(得分:-1)
4760对于LSTM来说是非常小的尺寸,而且看起来像是一个非常简单的分类模型,请尝试使用诸如svm之类的简单算法进行处理,但是如果您坚持使用深度学习,请使用带有密集层的顺序模型代替比该层多几层,绝对可以为您带来更好的效果。