Z mojej interpretacji pytania, podstawowe pytanie, które zadajesz, brzmi: czy możesz modelować czas jako splajn, czy nie.
Pierwsze pytanie, na które spróbuję odpowiedzieć, brzmi: czy możesz użyć splajnów do ekstrapolacji danych. Krótka odpowiedź brzmi: to zależy, ale w większości przypadków splajny nie są tak świetne do ekstrapolacji. Splajny są zasadniczo metodą interpolacji, dzielą przestrzeń, na której znajdują się twoje dane, i na każdej partycji pasują do prostego regresora. Spójrzmy więc na metodę MARS. Sposób Mars jest zdefiniowana jako
f ( x ) = n Σ i = 1 α I B I ( x [ i ] )
, gdzie α i jest stałe w perspektywie i'th w modelu MARS
fa^( x ) = ∑i = 1nαjabja( x[ i ])
αja jest zasady działania w perspektywie i'th i
x [ i ] reprezentuje wybrany z wektora cech w i'th perspektywie funkcję. Podstawowa funkcja może być stała lub może być funkcją zawiasową (prostownikiem). Funkcja zawiasu jest po prostu
m a x ( 0 , x [ i ] + c i )
To, co funkcja zawiasu zmusza model, to utworzenie
częściowejfunkcji liniowej (ciekawe jest to, że sieć neuronowa z rektyfikowaną funkcją aktywacji liniowej może być postrzegany jako model nadzbiór modelu MARS).
bjax[ i ]m a x ( 0 , x[ i ]+ cja)
R
fa^( x ) = 5 + m a x ( 0 , x - 5 ) + 2 m a x ( 0 , x - 10 )
10fa^( x ) = 10 + 2 ( x - 10 ) = 2 x - 10
5
Teraz wróćmy do szeregów czasowych. Szeregi czasowe są szczególnym przypadkiem w uczeniu maszynowym. Zwykle mają trochę struktury, niezależnie od tego, czy jest to częściowa wariancja, czy jeden z wielu różnych rodzajów podstruktur, i tę strukturę można wykorzystać. Ale potrzebne są specjalne algorytmy, które potrafią wykorzystać tę strukturę, niestety splajny tego nie robią.
Jest kilka rzeczy, które poleciłbym wypróbować. Pierwszą z nich byłyby sieci reccurent. Jeśli twoje szeregi czasowe nie są tak długie (i nie mają długoterminowych zależności), powinieneś być w stanie uciec od korzystania z prostej waniliowej sieci cyklicznej. Jeśli chcesz być w stanie zrozumieć, co się dzieje, możesz użyć rektyfikowanej jednostki liniowej z odchyleniami jako funkcji aktywacyjnej, co będzie równoznaczne z wykonaniem modelowania MARS na podzbiorze szeregów czasowych i „pamięci”, która stanowi rekurencyjna sieć neuronowa trzyma. Trudno byłoby zinterpretować sposób zarządzania pamięcią przez sieć, ale powinieneś dowiedzieć się, jak obsługiwana jest podprzestrzeń w odniesieniu do generowanej częściowej funkcji liniowej. Również jeśli masz funkcje statyczne, które nie należą do szeregów czasowych, stosunkowo łatwo jest nadal używać ich w sieci.
Jeśli posiadane przez ciebie szeregi czasowe są bardzo długie i mogą mieć długoterminowe zależności, polecam użycie jednej z bramkowanych sieci cyklicznych, takich jak GRU lub LSTM.
Na bardziej klasycznej stronie klasyfikacji szeregów czasowych można użyć ukrytych modeli markowa. Nie będę zagłębiał się w te kwestie, ponieważ nie znam ich tak dobrze.
Podsumowując, nie zalecałbym używania splajnów z dwóch powodów. Po pierwsze, nie jest w stanie poradzić sobie ze skomplikowanymi problemami ekstrapolacji, co wydaje się być problemem, który opisujesz. Po drugie, splajny nie wykorzystują podstruktur szeregów czasowych, które mogą być bardzo mocne w klasyfikacji szeregów czasowych.
Mam nadzieję że to pomoże.