Какая архитектура lstm для моих данных и какой процесс обработки данных мне следует делать - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь построить архитектуру LSTM для прогнозирования заболеваемости (0% -100%). Мой вход - это массив с размером 4760x10 (от числа больных в городе на возраст, количество консультаций .....). Мой вывод или y - уровень заболеваемости.

Я новичок в машинном обучении, и я попробовал несколько советов, таких как изменение оптимизатора, номер узла слоя и значение выпадения, и моя модель не сходилась (самое низкое значение mse = 616.245). Я также пытался масштабировать свои данные с помощью MinMaxScaler. Не могли бы вы, ребята, помочь мне советом изменить архитектуру или обработку данных, чтобы помочь модели сходиться.

вот модель lstm, которая дает мне mse = 616.245

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 голосов
/ 11 июля 2019

4760 - это очень небольшое количество измерений для LSTM. Плюс, это выглядит как очень простая модель классификации, попробуйте использовать более простые алгоритмы, такие как svm, но если вы непреклонны в использовании глубокого обучения, используйте последовательную модель с плотным слоем вместоеще несколько слоев, чем этот, который определенно должен дать вам лучшие результаты.

...