У меня есть эта модель для многомерного прогнозирования многоступенчатых рядов.
def build_model(train,n_input):
train_x, train_y = to_supervised(train, n_input)
verbose, epochs, batch_size = 1, 60,20
n_timesteps, n_features, n_outputs = train_x.shape[1], train_x.shape[2], train_y.shape[1]
train_y = train_y.reshape((train_y.shape[0], train_y.shape[1], 1))
model = Sequential()
model.add(LSTM(200, activation='relu', input_shape=(n_timesteps, n_features)))
model.add(RepeatVector(n_outputs))
model.add(LSTM(200, activation='relu', return_sequences=True))
model.add(TimeDistributed(Dense(100, activation='relu')))
model.add(TimeDistributed(Dense(1)))
model.compile(loss='mse', optimizer='adam', metrics=['accuracy'])
model.fit(train_x, train_y, epochs=epochs, batch_size=batch_size, verbose=verbose)
return model
Я получил такой результат:
Epoch 59/60
5516/5516 [==============================] - 21s 4ms/step - loss: 1.8988 - acc: 0.5636: 1s - loss: 1.
Epoch 60/60
5516/5516 [==============================] - 22s 4ms/step - loss: 1.8556 - acc: 0.5685
Оценка R2:
r2_score(test[:,-1], pred)
0.8688880951315198
Из приведенного выше результата у меня есть несколько вопросов:
1) Как измерить точность модели? Является ли точность обучения принятой (здесь loss: 1.8556 - acc: 0.5685
) или r2 score
, взятой для измерения точности.
2) Как я мог повысить свою точность? Я попытался LSTM -CNN снова получить похожий результат.
Пожалуйста, помогите мне в повышении точности.