З моєї інтерпретації питання, основним питанням, яке ви задаєте, є чи ви можете моделювати час як сплайн.
Перше запитання, на яке я спробую відповісти, - це ви можете використовувати сплайни для екстраполяції даних. Коротка відповідь - це залежить, але більшу частину часу сплайни не такі великі для екстраполяції. Шпонки, по суті, є методом інтерполяції, вони ділять простір, на якому лежать ваші дані, і на кожному розділі вони підходять простому регресору. Отже, давайте розглянемо метод MARS. Метод MARS визначається як
де - константа на i-му члені в моделі MARS , - функція бази на i-му члені, а
f^( x ) = ∑i = 1нαiБi( х[ i ])
αiБiх[ i ]представляє функцію, вибрану з вашого векторного ознаки на i-му терміні. Базова функція може бути постійною або може бути функцією шарніра (випрямляч). Функція шарніра просто
Те, що функція шарніра змушує модель створювати
кусочно- лінійну функцію (цікаво зазначити, що нейронна мережа з випрямленою лінійною функцією активації може бути розглядається як суперсети моделі MARS).
m a x ( 0 , x[ i ]+ ci)
Отже, щоб повернутися до питання, чому сплайни зазвичай не такі великі для екстраполяції, це зрозуміти, що як тільки точка, яка вам потрібна, екстраполяція починає лежати, проходить межі інтерполяції, лише "дуже мала частина вашої моделі" буде "активована" або дуже велика його частина буде "активована", і тому потужність моделі зникає (через відсутність варіації). Щоб отримати трохи більше інтуїції з цього приводу, зробимо вигляд, що ми намагаємось пристосувати модель MARS до простору функцій, що лежать у . Отже, враховуючи одне число, ми намагаємось передбачити інше. У моделі MARS з'являється функція, яка виглядає приблизно так:
Якщо екстраполяція проходить через числое ( х ) = 5 + м х ( 0 , х - 5 ) + 2 м х ( 0 , х - 10 ) 10 F ( х ) = 10 + 2 ( х - 10 ) = 2 х - 10 5R
f^(x)=5+max(0,x−5)+2max(0,x−10)
10тепер функція стає
Модель MARS, яку ми мали раніше, зводиться до єдиної лінійної функції, і тому потужність моделі MARS зникає (це випадку більшості термінів "активація"). Те ж саме станеться з екстраполяцією перед числом . Вихід моделі MARS тоді буде просто постійним. Ось чому більшу частину часу сплайни не підходять для екстраполяції. Це також пояснює проблему, про яку ви згадували в коментарях до своїх публікацій, що екстраполіровані прогнози є "дуже вигідними для нових цінностей" і що вони, як правило, "продовжуються в тому ж напрямку" для різних часових рядів.
f^(x)=10+2(x−10)=2x−10
5
Тепер повернемося до часових рядів. Часові ряди є досить особливим випадком в машинному навчанні. Вони, як правило, мають трохи структури, будь то часткова зміна або одна з безлічі різних типів підструктур, і цю структуру можна використовувати. Але потрібні спеціальні алгоритми, які здатні експлуатувати цю структуру, на жаль, сплайни цього не роблять.
Є кілька речей, які я рекомендую вам спробувати. Перший - це рекурентні мережі. Якщо ваш часовий ряд не такий довгий (і не має довгострокових залежностей), ви повинні мати можливість піти з використання простої мережі, що повторює ваніль. Якщо ви хотіли б зрозуміти, що відбувається, ви можете використовувати випрямлений лінійний блок з ухилом як функцію активації, і це буде рівнозначно моделюванню MARS на підмножині тимчасових серій та "пам'яті", що повторюється нейронна мережа тримає. Було б важко інтерпретувати спосіб управління пам’яттю мережею, але ви маєте отримати уявлення про те, як обробляється підпростір відносно породженої кусочно-лінійної функції. Крім того, якщо у вас є статичні функції, які не належать до часових рядів, відносно легко їх використовувати в мережі.
Якщо часовий ряд у вас дуже довгий і може мати довгострокову залежність, я рекомендую використовувати одну з рецидивованих мереж із закритим типом, наприклад GRU або LSTM.
На більш класичній стороні класифікації часових рядів можна використовувати моделі прихованих марків. Я більше не буду заглиблюватися в ці питання, бо я не так знайомий з ними.
На закінчення я б не рекомендував використовувати шпонки з двох причин. По-перше, він не в змозі впоратися зі складними проблемами екстраполяції, що, здається, є проблемою, яку ви описуєте. По-друге, сплайни не використовують підструктури часових рядів, які можуть бути дуже потужними в класифікації часових рядів.
Сподіваюся, це допомагає.