私の質問の解釈から、あなたが尋ねている根本的な質問は、時間をスプラインとしてモデル化できるかどうかです。
私が答えようとする最初の質問は、スプラインを使用してデータを外挿できるかどうかです。簡単な答えは、それは依存しますが、ほとんどの場合、スプラインは外挿にはあまり適していません。スプラインは本質的に補間方法であり、データが存在するスペースを分割し、各パーティションで単純なリグレッサーに適合します。それでは、MARSのメソッドを見てみましょう。MARSメソッドは、として定義され
ここで、は、MARSモデルのi番目の項の定数です。 、はi番目の項の基底関数、
f^(x )= ∑i = 1nα私B私(x[ i ])
α私B私バツ[ i ]i番目の項で特徴ベクトルから選択された特徴を表します。基底関数は、定数またはヒンジ関数(整流器)のいずれかです。ヒンジ関数は、単純に
です。ヒンジ関数がモデルに強制するのは、
区分的線形関数を作成することです(整流線形活性化関数を持つニューラルネットワークは、 MARSモデルのスーパーセットモデルと見なされます)。
m a x (0 、x[ i ]+ c私)
スプラインが外挿にとって通常それほど大きくない理由の質問に戻るには、外挿が必要なポイントが内挿の境界を通過し始めると、モデルのごく一部のみが「アクティブ」になることを認識することです。または、その非常に大きな部分が「アクティブ化」され、したがって、モデルの力が消滅します(変動がないため)。これについてもう少し直感的に理解するために、にある機能空間にMARSモデルを適合させようとしているふりをしましょう。そのため、ある数値を与えて、別の数値を予測しようとします。MARSモデルには、次のような関数があります。
外挿が超えて発生する場合R
f^(x )= 5 + m a x (0 、x − 5 )+ 2 m a x (0 、x − 10 )
10関数は
。以前のMARSモデルは1つの線形関数になり、MARSモデルのパワーはなくなります(これは「アクティベート」という用語の大部分の場合)。前の外挿でも同じことが起こります。その場合、MARSモデルの出力は単純に定数になります。これが、ほとんどの場合、スプラインが外挿に適していない理由です。これはまた、あなたが投稿のコメントで言及した問題を説明します。外挿された予測は「新しい値に対して非常にオフ」であり、異なる時系列で「同じ方向に続く」傾向があります。
f^(x )= 10 + 2 (x − 10 )= 2 x − 10
5
ここで、時系列に戻りましょう。時系列は、機械学習の非常に特殊なケースです。それらは、部分不変であろうと、多くの異なる種類のサブ構造の1つであろうと、少しの構造を持つ傾向があり、この構造は悪用される可能性があります。しかし、この構造を活用できる特別なアルゴリズムが必要であり、残念ながらスプラインはこれを行いません。
いくつか試してみることをお勧めします。1つ目は再帰ネットワークです。時系列がそれほど長くない場合(そして長期的な依存関係がない場合)、単純なバニラリカレントネットワークを使用して逃げることができるはずです。何が起こっているのかを理解したい場合は、活性化関数としてバイアス付きの整流線形ユニットを使用できます。これは、時系列のサブセットと再帰ニューラルネットワークの「メモリ」でMARSモデリングを行うことと同等です。保持します。メモリがネットによってどのように管理されているかを解釈するのは難しいでしょうが、生成された区分的線形関数に関してサブスペースがどのように処理されているかをある程度理解する必要があります。また、時系列に属さない静的な機能がある場合、ネットでそれらを使用するのは比較的簡単です。
持っている時系列が非常に長く、長期的な依存関係がある可能性がある場合は、GRUやLSTMなどのゲートリカレントネットワークのいずれかを使用することをお勧めします。
時系列分類のより古典的な側面では、隠れマルコフモデルを使用できます。私はそれらに精通していないので、私はこれらにさらに入りません。
結論として、2つの理由からスプラインを使用することはお勧めしません。1つは、複雑な外挿問題を処理できないことです。これは、説明している問題のようです。2つ目は、スプラインは時系列の下位構造を活用していないため、時系列の分類に非常に強力です。
お役に立てれば。