У меня проблема с прогнозированием количества кликов на основе даты, цены за клик (CPC (цена за клик), рынка (США или Великобритания) и ключевых слов (средняя длина 3-4 слова, макс. 6). Итак, функции, которые я решил ввести в модель, были:
Day(1-31) WeekDay(0-6) Month(1-12) US-Market(0 or 1) UK-Market(0 or 1) CPC(continuous numeric)
И на выходе получилось непрерывное числовое число кликов.
Для ключевых слов я использовал токенайзер keras для преобразования в последовательности идополнить эти последовательности. Я использовал вложение слова в перчатку, создал матрицу встраивания и подал ее в сетевую модель Nueral, как описано здесь в разделе встраивания перчаток с подготовкой.
Я использовал следующую модель:
Последний плотный слой имеет линейную активацию. Модель имеет два входа (nlp_input для текстовых данных) и meta_input для (числовых, категориальных данных). Обе модели объединяются после двунаправленного LSTM к nlp_input. Потери:
model.compile(loss="mean_absolute_percentage_error", optimizer=opt,metrics=['acc'])
, где opt = Adam(lr=1e-3, decay=1e-3 / 200)
Я обучил модель для 100 эпох, и потеря была близка к 8000 при этомточка. Но когда я применяю прогноз к тесту, они приводят к одному и тому же числу для всех входов теста, и это число даже отрицательно -4.5 * e^-5
. Может ли кто-нибудь подсказать мне, как мне следует подойти к этой проблеме и какие улучшения я могу сделать для этой модели.