#machine-learning #keras #lstm #recurrent-neural-network #multiclass-classification
Вопрос:
Я пытаюсь построить модель LSTM для задачи классификации.
Я пытаюсь предсказать статус просроченной задолженности по ипотечным кредитам, где целевая переменная имеет 5 меток [0,1,2,3,4]. У меня есть тысячи строк, но в данный момент я работаю с небольшим образцом, который выглядит следующим образом:
- X Training Set size is (1008, 39)
- y Training Set size is (1008, 5)
- X Test Set size is (252, 39)
- y Test Set size is (252, 5)
## Reshaping for LSTM [batch size, time steps, dimensions].
- X_train = X_train.reshape(len(X_train),1, 39)
- X_test = X_test.reshape(len(X_test),1,39)
print(X_train.shape, X_test.shape)
(1008, 1, 39) (252, 1, 39) --> Is this shape right? My data has a mix of time steps; some loans are older than others
### configure network
batch_size = 100
epochs = 1000
neurons = 500
# design network
model = Sequential()
model.add(LSTM(neurons, dropout=0.2, input_shape=(X_train.shape[1], X_train.shape[2]), return_sequences=False))
#batch_input_shape=(batch_size, X_train.shape[1],X_train.shape[2])))
model.add(Dense(100, activation='relu'))
model.add(Dense(5, activation='softmax'))
#opt = SGD(lr=0.01, momentum=0.9)
model.compile(loss='categorical_crossentropy', optimizer="adam", metrics=['accuracy'])
# FIT MODEL
history = model.fit(X_train, y_train, validation_data=(X_test, y_test), epochs=epochs, batch_size=batch_size)
score = model.evaluate(X_test, y_test, batch_size=batch_size)
print(model.metrics_names, score)
Приведенный выше код работает, но я очень смущен всеми этими формами.
Кто-нибудь знает разницу между «input_shape=» и «batch_input_shape=»? «batch_input_shape» не сработало для меня.
Может ли кто-нибудь объяснить, как здесь работают значения input_shape(1,39)? Это 1, один разовый шаг? Могу ли я изменить это значение? Интуитивно я надеялся, что LSTM сможет определить, сколько периодов времени имеет каждый идентификатор ипотеки (некоторые кредиты старше других, т. Е. Я не смог указать параметр значения временного шага).
Все примеры моделей LSTM, которые я видел, относятся к тексту и изображениям, и я изо всех сил пытаюсь найти пример, который соответствует моим данным и конкретной проблеме, которую я пытаюсь решить.
Комментарии:
1. Основная идея использования LSTM-подобных моделей заключается в зависимых значениях последовательности. Если вы считаете, что одно значение последовательности зависит от другого, тогда имеет смысл использовать их, иначе было бы лучше использовать полностью подключенный слой. Кроме того, ваш ошибочный массаж не в той части, я не в состоянии его увидеть; возможно, вы захотите это изменить.