詳しく調べずにとりあえず実行したので、結果や予想などはジョークグッズ的な感じで見てください。
結論
データ数が少ない
あくまで現状の結論です。他にも問題が山積みだと思います。
どんな条件だったか
学習データ
139レース×11特徴
レースについては、2018年の関屋記念に出走登録されている15頭の過去10レースを選んだ。10レース未満の馬もいたので、139レースになった。
特徴には、
- 競馬場
- レース番号
- 出走頭数
- 馬番
- オッズ
- 人気
- 斤量
- 芝orダート
- 距離
- 馬場状態
- 馬体重
を採用しました。
モデル
ニューラルネットワーク
- 入力層のサイズ・・・20
- 隠れ層の数・・・3
- 隠れ層のユニット・・・20
- 隠れ層ドロップアウト・・・50%
- 出力層のサイズ・・・18
- 活性化関数・・・ReLU
- 誤差関数・・・平均二乗誤差
- 勾配法・・・RMSprop
- epoch・・・250回
- テストデータ・・・15%
予想するデータとしては、8月9日(木)の時点で1番人気だった「プリモシーン」を採用。オッズ4.6倍、馬体重は478kg、馬場状態は良、にしました。木曜なので…
結果
複数回やると学習履歴グラフが毎回変化する…
1回目
2回目
3回目
4回目
5回目
5回ともひどい…
ちなみに、4回目以外は「掲示板には入る」と予想していた。
結論
これをやる前に、競馬ではないデータで試しています(ワインのデータ)。データ数が1600×11特徴のもので学習すると、きれいなグラフになっていた。
ワインのデータは、競馬のデータに比べて、
- 相関関係がハッキリしている
- 無駄な特徴が少ない
ことから、学習しやすかったであろうと考えています。
なので「データ数が少ない」と結論づけました。
感想・今後
実は、学習用のデータ139レース分は、手打ちで集めました(笑)
スクレイピングの技術が足りませんでした。スクレイピングをもっと勉強する前に、試してみたい気持ちが上回ったので、手打ちで集めました。
データに関しては、スクレイピングを学ぶか、月額有料で買うかの2択。
ニューラルネットのモデルに関しては、山のように改善点がある。そもそも、少ないデータに向かないんだろうな…
おーわり