Ось простий рецепт, який може допомогти вам почати писати код і тестувати ідеї ...
Припустимо, у вас щомісячні дані записуються протягом декількох років, тому у вас є 36 значень. Припустимо також, що ви дбаєте лише про те, щоб передбачити один місяць (вартість) заздалегідь.
- Дослідницький аналіз даних: застосуйте деякі традиційні методи аналізу часових рядів для оцінки залежності відставання в даних (наприклад, автокореляція та часткові графіки автокореляції, перетворення, диференціювання). Скажімо, що ви вважаєте, що значення для даного місяця співвідноситься з даними за останні три місяці, але не набагато перевищує це.
- Розподіліть ваші дані на навчальні та валідаційні набори: Візьміть перші 24 бали як свої навчальні значення, а решта - як набір перевірки.
- Створіть схему нейронної мережі: Ви отримаєте значення останніх трьох місяців у якості вхідних даних і хочете передбачити значення наступного місяця. Отже, вам потрібна нейронна мережа з вхідним шаром, що містить три вузли, і вихідним шаром, що містить один вузол. Напевно, у вас повинен бути прихований шар, що має принаймні пару вузлів. На жаль, вибір кількості прихованих шарів та їх відповідної кількості вузлів - це не те, для чого існують чіткі вказівки. Я б почав з малого, як 3: 2: 1.
- Створіть схеми тренувань: у кожного шаблону тренувань буде чотири значення, причому перші три відповідають вхідним вузлам, а останнє визначає, яке правильне значення для вихідного вузла. Наприклад, якщо вашими даними про навчання є значення тоді
x1,x2…,x24
pattern1:x1,x2,x3,x4
pattern2:x2,x3,x4,x5
…
pattern21:x21,x22,x23,x24
- Тренуйте нейронну мережу за цими схемами
- Перевірте мережу на наборі валідації (місяці 25-36): Тут ви перейдете до трьох значень, які нейронна мережа потребує для вхідного шару, і побачите, що встановлюється вихідний вузол. Отже, щоб побачити, наскільки добре навчена нейронна мережа може передбачити значення 32 місяця, ви перейдете у значеннях за 29, 30 та 31 місяці
Цей рецепт, очевидно, на високому рівні, і ви, можливо, спершу почухаєте голову, намагаючись відобразити свій контекст у різних бібліотеках / програмах програм. Але, сподіваємось, це накреслює основний момент: вам потрібно створити схеми тренувань, які розумно містять кореляційну структуру серії, яку ви намагаєтеся прогнозувати. Незалежно від того, чи робите ви прогнозування за допомогою нейронної мережі чи моделі ARIMA, пошукова робота щодо визначення того, що є цією структурою, часто є найбільш трудомісткою і складною частиною.
На мій досвід, нейронні мережі можуть забезпечити чудові функції класифікації та прогнозування, але їх налаштування може зайняти багато часу. У наведеному вище прикладі ви можете виявити, що 21 схема тренувань недостатня; різні перетворення вхідних даних призводять до кращих / гірших прогнозів; варіювання кількості прихованих шарів та прихованих вузлів шару сильно впливає на прогнози; тощо.
Я настійно рекомендую завітати на веб-сайт neural_forecasting , який містить багато інформації про змагання з прогнозування нейронної мережі. Мотиви сторінка особливо корисна.