Kaggle Tutorial

時系列予測

特徴量ベースと系列モデルの使い分け、時系列の検証とリーク回避を学びます。

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) を挟むことで、予測時点で未来の値を使わないようにします。

検証はリークとの戦い#

注意

時系列で通常の K-Fold(ランダム分割)を使うと、未来で過去を予測してしまいデータリークに なります。必ず時系列分割(過去で学習し未来で検証)を使い、特徴量の集計も 「その時点までの情報だけ」で作ります。

  • 移動統計・ラグは必ず過去方向のみ(未来を覗かない)
  • 検証期間は本番の予測期間と長さ・位置をそろえる
  • リークの典型:未来の値を含む集計、shift 忘れ、全期間での標準化

ヒント

まず「特徴量ベース + GBDT + 時系列分割」で堅いベースラインを作り、必要なら系列モデルを 足してアンサンブルする、という順序が安全です。

理解度チェック#

Quiz時系列データの検証で避けるべきことは?

次のステップ#

最後に、Kaggle 環境での GPU/TPU 活用・混合精度・メモリ最適化を学びます。