Оценка LSTM metri c MAE объяснение - PullRequest
1 голос
/ 04 апреля 2020

Мне трудно понять производительность модели LSTM, поскольку я обобщаю свою модель следующим образом:

X_train.shape
(120, 7, 11)
y_train.shape
(120,)
X_test.shape
(16, 7, 11)
y_test.shape
 (16,)

model = keras.Sequential()
model.add(keras.layers.LSTM(100, input_shape=(X_train.shape[1], X_train.shape[2]), return_sequences = True))
model.add(keras.layers.Dropout(rate = 0.2))
model.add(keras.layers.LSTM(20))
model.add(keras.layers.Dropout(rate = 0.2))          
model.add(keras.layers.Dense(1))
model.compile(loss='mean_squared_error', optimizer=keras.optimizers.Adam(0.001), metrics = ['mae'])

history = model.fit(
X_train, y_train, 
epochs=60,
batch_size=5,
verbose= 0,
validation_split = 0.1,
shuffle=False
)

На основе приведенных ниже графиков, как MSE, так и MAE уменьшаются в процессе обучения, и их соответствующие значения около нуля.

mse mae

Однако, как я понимаю, прогноз недостаточно точен:

y_pred = model.predict(X_test)
model.evaluate(X_test,y_test)
[0.04673878103494644, 0.15574690699577332]

prediction

Итак, мой вопрос, как на самом деле работает моя модель? Я имею в виду, как можно интерпретировать его производительность, так как MSE и MAE кажутся низкими, но значения прогноза не совсем убедительны.

1 Ответ

2 голосов
/ 12 апреля 2020

Вы видите MSE около 0,03, что соответствует средней ошибке 0,17 (принимая квадрат root, поскольку MSE - среднеквадратическая ошибка). То, что вы видите в своих временных рядах, - это ошибки между 0,0 и 0,4, что кажется разумным.

Я бы потренировался дольше и посмотрел, сможете ли вы снизить уровень MSE (MSE более чувствителен к большим выбросам). Я не думаю, что 60 эпох - это очень большое число.

Также отмечу, что у вас всего 120 точек данных - это может быть немного мало для обучения многослойной модели LSTM, эти модели работают лучше всего. с большим количеством данных. Сколько данных вам нужно? - жестких и быстрых правил нет, но у вашего LSTM есть около 4000 весов, я слышал одно практическое правило - использовать 3 * количество весов - так 12000 точек данных - источник здесь: https://www.researchgate.net/post/What_is_the_minimum_sample_size_required_to_train_a_Deep_Learning_model-CNN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...