学習のためのコードは?

プログラミング環境

学習するためのコードを作成するので、その目的などを明確にしてみました。

超概要

目的:競馬の着順予測モデルを構築する
解決する課題:多様な馬・騎手・血統・レース環境情報を統合して精度の高い予測を行う
入力データ:過去レース結果 (horse_db.csv)、血統情報 (bloodline_id_data.csv)
出力データ:学習済みモデル (transformer_model.pth)、特徴量情報(JSONファイル群)
使用技術:Python(PyTorch, pandas, NumPy, scikit-learn)、LSTM+SetTransformer+スタッキング

そして、具体的なフローの考え方もまとめてみました。

具体的なプログラムの方法や仕様

デバイス設定:GPU利用可否を確認し、CPU/GPUを自動切替
データ読み込み:過去レースデータ・血統データを読み込み結合
特徴量生成:日数差、標準化上り、距離カテゴリ、血統得意距離/脚質/馬場、騎手勝率、相対特徴量などを作成
前処理:不要列削除、ラベルエンコード、スケーリング、シーケンス展開
データ分割:時系列ホールドアウト+レース単位分離で訓練・検証・テストに分割
Embedding情報作成:カテゴリ特徴をEmbeddingに変換するための辞書と次元情報を保存
モデル構築:
・LSTM+SetTransformerによるハイブリッドモデル
・Self-Attention版とSetTransformer版を作成しスタッキング
学習:Pairwise Ranking Loss+Top-1 Loss+NDCG@3 Lossを組み合わせて最適化
検証とEarlyStopping:検証用データでNDCG@3をモニタし改善が止まれば学習終了
保存:学習済みモデル(transformer_model.pth)と特徴量情報をJSONで出力

これをベースに、まずは学習コードをまとめていきます!

コメント

タイトルとURLをコピーしました