Создавайте модели нейронных сетей на уровне города и сети - PullRequest
0 голосов
/ 26 мая 2020

Я создаю модель нейронной сети, чтобы предсказать, сколько людей появится на мероприятии в течение следующих 21 дня. Итак, это модель seq2seq, в которой мои предикторы - это 4 переменные с их запаздывающими значениями 63 дня, а моя конечная переменная - это количество людей, появившихся на мероприятии в следующие 21 день.

Я построил модель на уровне сети с использованием кода python ниже. Однако моя конечная цель - создать прогнозы для каждого города (всего у меня более 1000 городов). Я попытался построить по одной модели для каждого города, в итоге получилось более 1000 моделей. Но я не уверен, что это лучший способ решить проблему. Итак, мои вопросы:

1) Рекомендуется ли построить одну модель нейронной сети для генерации прогнозов на уровне города для более 1000 городов, ИЛИ лучше ли построить одну модель NN для одного города?
2) Если предпочтительным подходом является модель единственной нейронной сети, то как я могу построить единую модель нейронной сети, которая генерирует прогнозы для 1000+ городов?
3) Как я могу добавить переменные stati c, такие как состояние , деловой сектор, день недели в модели? Предикторы в моей модели - это все переменные временного ряда (с запаздыванием на 63 дня), поэтому я не знаю, как добавить в модель переменные stati c, которые не являются запаздывающими значениями.

Python код, используемый для построить модель уровня всей сети:

model_conv.add(Conv1D(filters=64, kernel_size=3, activation='relu'))
model_conv.add(MaxPooling1D(pool_size=2))
model_conv.add(Flatten())
model_conv.add(RepeatVector(n_outputs))
model_conv.add(LSTM(200, activation='relu', return_sequences=True))
model_conv.add(TimeDistributed(Dense(100, activation='relu')))
model_conv.add(TimeDistributed(Dense(1, activation='relu')))


model_conv.compile(loss='mse', optimizer='adam')

# fit network
history = model_conv.fit(train_x, train_y, epochs=epochs, batch_size=batch_size, verbose=verbose
                         , validation_split=0.2)
...