時系列予測
特徴量ベースと系列モデルの使い分け、時系列の検証とリーク回避を学びます。
2 つのアプローチ#
時系列予測には大きく 2 系統があります。
- 特徴量ベース:ラグ・移動平均・季節性などを特徴量にして 勾配ブースティング(GBDT) で予測。 実務・コンペで非常に強く、まず試す価値がある
- 系列モデル:RNN/LSTM や Transformer 系で系列をそのまま学習。長期依存や複雑なパターン向け
多くのテーブル系時系列コンペでは、特徴量ベース + GBDT が依然として強力です。
時系列特徴量#
# ラグ特徴と移動統計(グループごと・時間順を保つ)
df = df.sort_values(["id", "date"])
df["lag_1"] = df.groupby("id")["y"].shift(1)
df["roll_mean_7"] = df.groupby("id")["y"].shift(1).rolling(7).mean()shift(1) を挟むことで、予測時点で未来の値を使わないようにします。
検証はリークとの戦い#
注意
- 移動統計・ラグは必ず過去方向のみ(未来を覗かない)
- 検証期間は本番の予測期間と長さ・位置をそろえる
- リークの典型:未来の値を含む集計、
shift忘れ、全期間での標準化
ヒント
まず「特徴量ベース + GBDT + 時系列分割」で堅いベースラインを作り、必要なら系列モデルを 足してアンサンブルする、という順序が安全です。
理解度チェック#
次のステップ#
最後に、Kaggle 環境での GPU/TPU 活用・混合精度・メモリ最適化を学びます。