時系列データは、通常のデータ(時間の経過による影響が少ないと考えられるデータ)と同じように取り扱えない特殊なデータです。
時系列データを分析する際は、以下のような仮説を設定します。
・未来は常に過去の影響を受ける
・予測時に手元に揃っているのは、常に過去のデータだけである
そのため、データの並び替えを行う処理(「シャッフル」や「各クラスの割合を同じにする(層化抽出)」)ができません。 (正確には処理自体は可能ですが、その精度は信頼性が低いものと考えられます)
Learning Forecastでは、時系列データで学習する場合、学習精度を確認する「交差検証」時に強制的に「TimeSeriesCrossValidation」を実施するようにしています。
TimeSeriesCrossValidationは、検証データが常に学習データよりも未来のデータになるようにデータを分割、検証を行う手法です。
そのため、学習設定で「シャッフル」を指定していたとしても、内部的にはシャッフルされずに、TimeSerieCrossValidationが行われます。
これは、未来のデータを含んだ学習モデルで不当に精度が高まることを防ぐための措置として、ご理解いただければ幸いです。
もしシャッフルや層化抽出による学習精度の確認を行いたい場合は、時系列データとして設定しない(indexを日付型に指定しない)方法を取ることも可能です。