一口馬主の出資馬選定を機械学習で行う（第1回）

# はじめに
購入する馬券をソフトウェアで機械的に選定する手法といえば、最近では「ハズレ馬券は経費か否か」を争った裁判が大きな話題を呼んだ。

[「外れ馬券経費裁判」逆転勝訴の裏 - 東スポWeb](https://www.tokyo-sports.co.jp/race/horse/533474/)

買い目を固定のロジックにより選定するというのはかなり以前からあり、日本では日刊コンピなど、海外でもDaily Racing Formなどが馬の能力を「指数」と呼ばれる数値で表し、それを参考に馬券を買うファンも多かった。現在でも走破タイムや対戦成績などから各馬の能力などを数値化したデータをJRAの公式データ配信"Data Lab."内で配信するなど、そういった「機械的に算出された数値」と馬券とを結びつける試みは多数行われている。

そしてこの「馬券の買い目」以外でも、我々一口クラブ会員は「出資馬する馬を募集馬カタログから選ぶ」というイベントに毎年頭を悩まされており、その出資馬の選定を機械学習で行えないか、というのが本企画の主旨である。
機械学習にちょっと興味が出てきたので、わかりやすい競走馬関連をモデルに習作を作っていく感じで。

「俺が選んだ馬が走らないのであれば、いっそ『人工知能』に馬を選ばせればいいじゃない」
（※本稿執筆2017年9月時点で1000万条件以上のクラスでキャロットオンリーにも関わらず40戦0勝の雑魚出資者並の感想）

# 今回用意したデータ
2013～2017年までのキャロットクラブ募集馬に関して

- クラブから公表された各馬の測尺データ（体高、胸囲、管囲、体重）、一口の価格、所属予定厩舎、性別
- データラボ配信の生年月日、父馬、母馬、父父、母父、生産者、勝利回数
    - 3代父母データは今回は除外
    - データラボからAWSのRDSにデータを流す方法については後日記事にするかも

上記データを、教育用として2012～2014年産のデータ（既に勝ち上がりか否かの結果がほぼ出ている）と実際の判定を行う2015～2016年産のデータに分け、ニューラルネットワーク上で扱いやすいように加工したCSVファイルにする。

![image.png](https://qiita-image-store.s3.amazonaws.com/0/204000/04900165-54a0-662a-edf7-fd8aa8d9030c.png)

1列目は血統登録番号、最終列は勝ち上がり判定（0 or 1）

# 機械学習を行う方法
「ニューラルネットワークとはなんぞや？」からのスタートなので、下記書籍を参考に色々勉強しつつそのサンプルコードを改造する形。

[ニューラルネットワーク自作入門](https://www.amazon.co.jp/dp/4839962251)　／　[サンプルコード](https://github.com/makeyourownneuralnetwork/makeyourownneuralnetwork/blob/master/part2_neural_network_mnist_data.ipynb)

また、学習サンプルが3世代分と少ないので、エポック数は意図的に毎年のキャロットの勝ち上がり率に近くなるように調整してある。


# 学習 ＆ 2015,2016年産の判定結果

| 募集年度| No |母名                |判定 |勝ち上がり|
|:------:|---:|:------------------|:---:|:----:|
|2016|1|ウルトラブレンド|×||
|2016|2|ガヴィオラ|○||
|2016|3|イルーシヴウェーヴ|×||
|2016|4|クリソプレーズ|×||
|2016|5|ラドラーダ|○|○|
|2016|6|ディアデラノビア|○||
|2016|7|ピンクパピヨン|○||
|2016|8|バロネスサッチャー|×||
|2016|9|リッチダンサー|×|○|
|2016|10|ジンジャーパンチ|×||
|2016|11|カニョット|×||
|2016|12|エレンウィルモット|×||
|2016|13|マルティンスターク|×||
|2016|14|クルソラ|○||
|2016|15|ヴィートマルシェ|○||
|2016|16|アドマイヤフッキー|×|○|
|2016|17|ペルレンケッテ|×||
|2016|18|フェルミオン|×||
|2016|19|ロフティーエイム|○||
|2016|20|ブロードピーク|×||
|2016|21|クロストウショウ|○||
|2016|22|ヴァンドノワール|○||
|2016|23|イストワール|○||
|2016|24|シェルズレイ|○||
|2016|25|スプリングシーズン２|×||
|2016|26|キュー|×||
|2016|27|ヴィアンローズ|○||
|2016|28|アドマイヤドレス|×||
|2016|29|アドマイヤサンデー|○||
|2016|30|シャラントレディ|×||
|2016|31|ジュモー|○||
|2016|32|メガクライト|○|○|
|2016|33|ヒカルアモーレ|×||
|2016|34|ミスティーク２|×|○|
|2016|35|カドリーユ|×||
|2016|36|ファーストチェア|○|○|
|2016|37|マイティースルー|×||
|2016|38|カサパサー|○||
|2016|39|シーズンズベスト|○||
|2016|40|コスモチェーロ|×||
|2016|41|ヒルダズパッション|○||
|2016|42|ココシュニック|×||
|2016|43|アドマイヤキラメキ|○||
|2016|44|アヴェンチュラ|×||
|2016|45|リーチコンセンサス|×||
|2016|46|シーザリオ|○||
|2016|47|ブルーメンブラット|×||
|2016|48|データ|○||
|2016|50|グレイトフィーヴァー|×||
|2016|51|アディクティド|×||
|2016|52|シンハリーズ|○||
|2016|53|トゥザヴィクトリー|○|○|
|2016|54|ドルチェリモーネ|×||
|2016|55|ビアンカシェボン|×||
|2016|56|ヴァイスハイト|○|○|
|2016|57|ラフォルジュルネ|×||
|2016|58|アソルータ|×|○|
|2016|59|ケイティーズジェム|○||
|2016|60|ジェシカ|○||
|2016|61|ヴェルデライト|×||
|2016|62|フォルテピアノ|○||
|2016|63|レースウィング|×||
|2016|64|レックスレイノス|○||
|2016|65|ピューリティー|×||
|2016|66|グレイシアブルー|○||
|2016|67|ヴェラブランカ|×||
|2016|68|ディミータ|○||
|2016|69|ベネヴェント|×||
|2016|70|ピンクアリエス|×||
|2016|71|フェリスタス|○||
|2016|72|アレキサンドリア|○||
|2016|73|マチカネチコウヨレ|○||
|2016|74|ラフィントレイル|×||
|2016|75|ティフィン|×||
|2016|76|スウェアトウショウ|○||
|2016|77|オーベルゲイド|○||
|2016|78|シシリアンブリーズ|○||
|2016|79|バイオレントハート|○|○|
|2016|80|Teddy'sPromise|×|○|
|2017|1|レーヴディマン|×||
|2017|2|リッチダンサー|○||
|2017|3|オリジナルスピン２|○||
|2017|4|クルソラ|○||
|2017|5|ディアデラノビア|○||
|2017|6|グレースランド|×||
|2017|7|アディクティド|×||
|2017|8|ヒルダズパッション|○||
|2017|9|ビキニブロンド|×||
|2017|10|フレンチバレリーナ|○||
|2017|11|ラドラーダ|○||
|2017|12|ミスティックリップス|×||
|2017|13|スカーレットベル|○||
|2017|14|コンカラン|○||
|2017|15|カメリアローズ|○||
|2017|16|アウトオブタイム|○||
|2017|17|スルーレート|○||
|2017|18|キュー|○||
|2017|19|ケイティーズジェム|○||
|2017|20|マイティースルー|×||
|2017|21|エルミラドール|○||
|2017|22|プリンセスカメリア|○||
|2017|23|リビングデイライツ|○||
|2017|24|フラゴリーネ|×||
|2017|25|クライフォージョイ|×||
|2017|26|ユールフェスト|×||
|2017|27|ピースエンブレム|○||
|2017|28|フォルテピアノ|○||
|2017|29|ドルチェリモーネ|×||
|2017|30|ティフィン|×||
|2017|31|ヴァイスハイト|○||
|2017|32|ピューリティー|○||
|2017|33|フェルミオン|×||
|2017|34|チアズメッセージ|○||
|2017|35|ホールロッタラヴ|×||
|2017|36|ネオイリュージョン|×||
|2017|37|カラベルラティーナ|×||
|2017|38|プロミネント|×||
|2017|39|ライツェント|×||
|2017|40|シーザシー|○||
|2017|41|ポロンナルワ|×||
|2017|42|スカイディーバ|○||
|2017|43|チェリーコレクト|×||
|2017|44|ココシュニック|×||
|2017|45|ジュモー|○||
|2017|46|ハープスター|×||
|2017|47|アビラ|○||
|2017|48|アナアメリカーナ|×||
|2017|49|ピュアブリーゼ|×||
|2017|50|マルティンスターク|○||
|2017|51|ヴィートマルシェ|○||
|2017|52|シーザリオ|○||
|2017|53|スペシャルグルーヴ|○||
|2017|54|シードオブハピネス|×||
|2017|55|マハービスタ|×||
|2017|56|アブソルートリー|×||
|2017|57|モンプティクール|○||
|2017|58|フェアリーバニヤン|○||
|2017|59|ヒカルアモーレ|×||
|2017|60|グレイトフィーヴァー|○||
|2017|61|アマルフィターナ|×||
|2017|62|ディアマイベイビー|×||
|2017|63|サンドミエシュ|×||
|2017|64|ブライダルソング|○||
|2017|65|イストワール|○||
|2017|66|アヴェンチュラ|○||
|2017|67|ラフォルジュルネ|×||
|2017|68|ハルーワソング|○||
|2017|69|クーデンビーチ|○||
|2017|70|ブロードピーク|×||
|2017|71|ヴェラブランカ|○||
|2017|72|ヴィアンローズ|○||
|2017|73|バイラオーラ|×||
|2017|74|カニョット|×||
|2017|75|スサーナトウショウ|○||
|2017|76|アドマイヤレッド|○||
|2017|77|プルーフオブラヴ|○||
|2017|78|ローズノーブル|×||
|2017|79|ピンクアリエス|×||
|2017|80|ダブルゴールド|×||
|2017|81|クリソプレーズ|×||

2015年産は9月24日時点までに11頭勝ち上がりが出ているので、そのうちラドラーダ、メガクライト、ファーストチェア、トゥザヴィクトリー、ヴァイスハイト、バイオレントハートの6頭を勝ち上がり予測して的中、逆にリッチダンサー、アドマイヤフッキー、ミスティーク２、アソルータ、Teddy'sPromiseの5頭は勝ち上がれないとの予測が外れたことになっている。6勝5敗、勝ち越しではあるものの物足りない結果となった。
その他、この学習結果に価値を見出せるとすると、1口5.5万までの78頭で勝ち上がり36頭の予測、1口6.5万以上の69頭で勝ち上がり39頭予測と値付けに対して妥当に偏った判断を行っている。（※中央値の6万はどちらにも属させないため除外）

# 反省・感想
とにかく学習データが少ないというのに尽きるので、もっとデータ増やしてから……と思うもののキャロットだけだと限界があるので色々なクラブのデータを集める必要がありますね。（習作だけど）
また、企画自体に興味・賛同・協力したいなどありましたら、ウェルカムですので一緒に競馬＆機械学習で遊び＆研究しましょう！