今までのをまとめると


  1. データを用意する。
  2. データにラベルを貼る。
  3. データを訓練用、テスト用にわける
  4. 学習させて、予想用データを入れる
  5. 予想結果をもらう


では、さっそく、この間、盛大に予測を外した競馬のコードを書いていく。


でもその前に、予測の方法を考える。

1. 予想するにあたって


何を中心にして予測をすべきか? これ色々ある。
今回は、レースタイムを予測するという方法に絞った。


2. 何のデータが必要か?


レースタイムに影響をする全般のデータかな?と思う。
過去のデータは

  1. レースタイム
  2. 距離
  3. 開催場所
  4. 騎手
  5. レース日?

にしよう。

他にも色々とあるんだけどね。斤量とか。
入れたい人は入れても大丈夫。

自分の予想メソッドに沿ったデータを入れるべき。

3. データ用意しよう



前回、大きく予想を外した菊花賞を再度予想してみます。


必要なデータは、さきほど2で書いた通り。


必要な範囲は、出馬するデータの過去データを全部取りましょう。


Yahoo 競馬の情報を使ってまとめます。



2019年の今回の菊花賞の出馬はこんな感じ↓

馬ID馬名騎手ID騎手名
12016104772ザダル01077石橋 脩
22016103444ニシノデイジー05339C.ルメール
32016104668カリボール05525藤井 勘一郎
42016110103ユニコーンライオン05203岩田 康誠
52016104854ワールドプレミア00666武 豊
62016104291ディバインフォース00660横山 典弘
72016104656ヒシゲッコウ05271C.スミヨン
82016105526メロディーレーン01163坂井 瑠星
92016100272ヴァンケドミンゴ01093藤岡 佑介
102016104549カウディーリョ05212M.デムーロ
112016105272シフルマン01126松山 弘平
122016105292レッドジェニアル01034酒井 学
132016104529ヴェロックス01088川田 将雅
142016104659サトノルークス01014福永 祐一
152016104816ホウオウサーベル00663蛯名 正義
162016103387ナイママ01009柴田 大知
172016100527タガノディアマンテ01075田辺 裕信
182016102192メイショウテンゲン01032池添 謙一


過去のレースデータが長くなるので、今回のサンプルコードは、2頭だけにします。


まとめて16頭予想するときはデータを拡張するだけです。


じゃ、今回は、1番のザダルと2番のニシノデイジーだけでいきます。



まずデータ整理として先程の出馬をこうします。↓
馬ID 騎手ID
2016104772 01077
2016103444 05339


カラム名を[馬ID]を[umaID]、[騎手ID]を[kishuID]に変更して、これをbase.csvで保存しておく。


base.csvの中身はこう↓



IDと名前のどちらかがいるだけなので、IDのみ残します。


この2頭の過去のレースは、
馬IDレースID騎手IDレース名レース日開催場所芝ダ距離タイム3F着順
2016103444180102051101025札幌2(GIII)2018-09-01札幌1800NULL37.01
2016103444180202020501025新馬2018-07-08函館1800113.636.02
2016103444180202050101025未勝利2018-07-21函館1800109.735.71
2016103444180505051101025東ス2(GIII)2018-11-17東京1800106.633.91
2016103444180605091101025ホープ(GI)2018-12-28中山2000121.935.33
2016103444190502121101025東京優(GI)2019-05-26東京2400143.134.35
2016103444190602041101025弥生賞(GII)2019-03-03中山2000123.737.14
2016103444190603081101025皐月賞(GI)2019-04-14中山2000120.135.91
2016103444190604051101025セント(GII)2019-09-16中山2200132.135.05
2016104772180905060505495新馬2018-12-16阪神2000NULLNULLNULL
2016104772190502081001077プリン(L)2019-05-12東京2000118.333.71
2016104772190601030601077新馬2019-01-12中山160097.434.81
20161047721906020606010753歳2019-03-10中山2000121.234.81
2016104772190604051101077セント(GII)2019-09-16中山2200131.935.83


これも必要な分だけにまとめます。

馬IDレースID騎手ID日付開催場所芝ダ距離タイム
20161034441801020511010252018-09-01札幌1800NULL
20161034441802020205010252018-07-08函館1800113.6
20161034441802020501010252018-07-21函館1800109.7
20161034441805050511010252018-11-17東京1800106.6
20161034441806050911010252018-12-28中山2000121.9
20161034441905021211010252019-05-26東京2400143.1
20161034441906020411010252019-03-03中山2000123.7
20161034441906030811010252019-04-14中山2000120.1
20161034441906040511010252019-09-16中山2200132.1
20161047721809050605054952018-12-16阪神2000NULL
20161047721905020810010772019-05-12東京2000118.3
20161047721906010306010772019-01-12中山160097.4
20161047721906020606010752019-03-10中山2000121.2
20161047721906040511010772019-09-16中山2200131.9

ここまでが過去のデータです。

これもカラム名を
[馬ID] を [umaID]
[レースID] を [raceID]
[騎手ID] を [kishuID]
[日付] を [r_date]
[開催場所] を [r_place]
[芝ダ] を [r_shibada]
[距離] を [race_meter]ter]
[タイム] を [r_time]


へと変更し、これをkako.csvで保存。


kako.csvの中身はこう↓




で、予想したい条件は菊花賞。京都で3000m。なのでこう↓



馬IDレースID騎手ID日付開催場所芝ダ距離タイム
2016104772 1908040711 01077 2019-10-20 京都 3000求めたいところ
20161034441908040711053392019-10-20京都3000求めたいところ

カラム名は上と同じ変更をします。

[馬ID] を [umaID]
[レースID] を [raceID]
[騎手ID] を [kishuID]
[日付] を [r_date]
[開催場所] を [r_place]
[芝ダ] を [r_shibada]
[距離] を [race_meter]ter]

ただし、タイムのところだけは削除。

これをpred_data.csvで保存


pred_data.csvのの中身はこう↓




さぁ準備が整った。


次回ラベル貼り。