Як кодувати дату як вхід в нейронну мережу?


12

Я використовую нейронні мережі, щоб передбачити часовий ряд. Питання, з яким я стикаюсь зараз, - як кодувати дату / час / серійний номер. кожного вхідного набору як вхід до нейронної мережі?

Чи слід використовувати 1 кодування C (використовується для кодування категорій), як описано тут ?

Або я повинен просто годувати його часом (в мілісекундах з 1-1-1970)?

Або годувати його непотрібним часом, поки я подаю решту даних хронологічно?


Я не впевнений, чому ви вважаєте, що подавати час непотрібним, якщо ви використовуєте нейронні мережі для прогнозування часового ряду .
scaaahu

існує багато способів кодування дат / часу. це допомогло б дізнатися природу часового ряду. не апріорі щось виключати, або правити.
vzn

@vzn Я намагаюся загалом передбачити фінансовий часовий ряд. Якщо це корисно.
Шаян РК

Відповіді:


17

Нейронні мережі не є магією. Якщо ви ставитесь до них такими, як вони, і просто кидайте на них дані, не думаючи, що у вас буде дуже поганий час.

Вам потрібно зупинитися і запитати себе: "Чи справді мілісекунди з 1970 року будуть прогнозувати подію, яка мене цікавить?" Відповідь, до якої слід негайно прийти, - ні. Чому? У кожному конкретному випадку, який вас насправді хвилює (події в майбутньому, минуле вже траплялося), змінна часу прийме значення, яке перевищує будь-яке значення, яке змінна часу прийме у ваших навчальних даних. Така змінна навряд чи допоможе. Навіть гірше, це може спричинити надмірне оснащення (серйозна проблема для таких потужних нелінійних моделей, як нейронні мережі), якщо ви не будете обережні.

Тепер, що може мати сенс, є така змінна, як тиждень року чи місяць, яка може допомогти вам моделювати сезонні чи річні ефекти. Я провів деяку роботу з прогнозування захворювань на сільськогосподарському ринку, де Джуліанський день став дуже важливою змінною. Виходячи з цього досвіду, я підозрюю, що вам краще буде кодувати цей тип змінної як категоричну змінну, а не порядкову, ваш досвід може дуже. Зауважте, що місяць чи тиждень року - це повторювані події, які, швидше за все, можна побачити у ваших даних про навчання, і можливо пояснити, чому така змінна може вплинути на фінансовий результат. Порівнюйте це з мілісекундами з 1970 року, що є лише монотонно зростаючим значенням.

Нарешті, із вашої заяви "Або вигодовуєте це зайвим часом, поки я подаю решту даних хронологічно?" це здається, що ви, можливо, не дуже добре розумієте, як працюють нейронні мережі. У стандартній нейронній мережі подачі даних порядок подавання вами даних не вплине на прогнози. Замовлення може вплинути на навчання, якщо ви використовуєте стохастичний або міні-пакетний градієнтний спуск, але це лише артефакт ітеративного (на відміну від пакетного) методу навчання. Якщо ви хочете моделювати часову залежність від нейронної мережі, вам потрібно буде використовувати щось на зразок розсувного вікна або періодичної нейронної мережі.


2

[1,1][0,1]sin(t)

f(t)f(t)dt=ft+gtgtft

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.