私はニューラルネットワークを使用して時系列を予測しています。私が今直面している問題は、日付/時刻/シリアル番号をどのようにエンコードするかです。ニューラルネットワークへの入力として設定された各入力の?
ここで説明するように、Cエンコーディング(カテゴリのエンコーディングに使用)の1つを使用する必要がありますか?
または、時間(1-1-1970からのミリ秒単位)を与える必要がありますか?
または、残りのデータを時系列でフィードする限り、時間を不要にしていますか?
私はニューラルネットワークを使用して時系列を予測しています。私が今直面している問題は、日付/時刻/シリアル番号をどのようにエンコードするかです。ニューラルネットワークへの入力として設定された各入力の?
ここで説明するように、Cエンコーディング(カテゴリのエンコーディングに使用)の1つを使用する必要がありますか?
または、時間(1-1-1970からのミリ秒単位)を与える必要がありますか?
または、残りのデータを時系列でフィードする限り、時間を不要にしていますか?
回答:
ニューラルネットワークは魔法ではありません。あなたがそれらをあるがままに扱い、あなたが非常に悪い時間を過ごすだろうと思わずにそれらにデータを投げるだけなら。
「1970年以降のミリ秒は、私が興味のあるイベントを実際に予測するのでしょうか?」あなたがすぐに到着すべき答えはノーです。どうして?実際に気にするすべてのインスタンス(将来のイベント、過去が既に発生している)に対して、時間変数はトレーニングデータで時間変数が取る値よりも大きい値を取ります。このような変数が役立つことはほとんどありません。さらに悪いことに、注意を怠ると、過剰適合(ニューラルネットワークのような強力な非線形モデルにとって深刻な問題)を引き起こす可能性があります。
意味があるのは、季節や年間の影響をモデル化するのに役立つ、週や月などの変数です。ジュリアン日が非常に重要な変数になった農業疾病予測の仕事をしました。この経験に基づいて、このタイプの変数を序数ではなくカテゴリ変数としてエンコードする方が良いと思われます。月または週は繰り返し可能なイベントであり、トレーニングデータで何度も表示される可能性があり、そのような変数が財務結果に影響を与える理由を説明できることに注意してください。これを1970年以降のミリ秒と比較してください。これは単調に増加する値です。
最後に、あなたの声明から「または、残りのデータを時系列で送る限り、時間は不要ですか?」ニューラルネットワークの仕組みを十分に把握していないようです。標準のフィードフォワードニューラルネットワークでは、ネットワークにフィードする順序は予測に影響を与えません。確率的またはミニバッチ勾配降下法を使用している場合、順序はトレーニングに影響を与える可能性がありますが、これは(バッチではなく)反復トレーニング方法の成果物にすぎません。ニューラルネットワークで時間依存性をモデル化する場合は、スライディングウィンドウまたはリカレントニューラルネットワークのようなものを使用する必要があります。