Download presentation
Presentation is loading. Please wait.
1
卒業研究発表 〜機械学習による競馬の予測〜 福永研究室 学部4年 石田 希望
2
目次 研究背景 機械学習とは 3つの手法 データの収集、加工 実験結果 考察 まとめ
3
人間による予測 先入観に頼る、主観的になりがち 競馬でどの馬が勝つか(人間が)予測してみると、、、 人気馬 自分のお気に入り 新聞の◎印
なんとなく強そう 直感 先入観に頼る、主観的になりがち
4
機械(コンピュータ)の強み 機械学習により、客観的なデータをもとに 予測ができるのではないか 過去何年ものレース結果を集めて
感情がない(人間が手を施さなければ) 速い、ミスのない計算 大量のデータを保持することができる 機械学習により、客観的なデータをもとに 予測ができるのではないか 過去何年ものレース結果を集めて 人間の限界を超える
5
機械学習とは データベース (訓練データ) 規則 判断基準 予測結果 競馬の場合
過去のレース結果からどのような馬が勝ちやすいか学習して、次のレース結果を予測する 解析 新たなデータ 予測結果
6
競馬の場合 関数(分類器) あるレースで走った馬Aの特徴(♂, 500kg, ...) → 結果1着(勝)
同じレースで走った馬Bの特徴(♀, 420kg, ...) → 結果10着(負) ・・・ 予測したい馬Cの特徴(♂, 450kg, ...) を分類器に入れると、「勝」という結果が返ってくる 実際レースで走ってみたら勝ちました、バンザーイ 特徴量 ラベル 関数(分類器) 訓練データをこういう風に分類すればどんな馬でも分類できる テストデータ ラベル
7
3つの手法 k近傍法(kNN) 決定木(Decision Tree) Random Forest
8
k近傍法 特徴が似ている訓練データの点を見つける ①多次元ベクトル空間に訓練データが与えられている
②その中にテストデータsを与えた時に、k個の最近傍 (ユークリッド距離)のデータを選択する ③多数決によりsのクラスが決定する ・2次元の例 k=3の時の最近傍 赤1個、黄2個で クラス2に分類される 赤=クラス1 黄=クラス2
9
決定木(Decision Tree) 特徴量に関する条件分岐により、クラス分けする木を作る
①訓練データを、なるべくクラスが混ざらないように特徴量の条件 を決めて、データを分割していく ②過学習に陥る可能性があるので、ある程度の深さで打ち切る ③テストデータを作成した木に入れて、分類させる ε-δが使えるか 数学ガチ率分類 Depth=3 Y N ジョルダン標準型が求まるか GPAはいくつか 3.0未満 Y N 3.0以上 数学ガチ 普通 普通 ・・・
10
過学習とは 訓練データに過剰に適切に分類しすぎてしまうこと テストデータに適合できなくなる 適当 過学習
11
Random Forest 決定木をたくさん作って多数決で決める ①訓練データからランダムにn個の標本を抽出する
③ ①②をk回繰り返す(k個の決定木をつくる) ④テストデータをそれぞれの木に入れる ④k個の分類結果をまとめて、多数決によりクラスを決定する
12
使用した言語、ソフト Python 3.6.3 Spyder developer communityが開発
13
データの収集 JRA-VAN ( jra-van.jp ) JRA公式のデータが揃う競馬情報サービス
データをcsvファイルで出力できるソフト”馬吉”
14
データベース 馬毎レース情報 JRA-VAN データラボ 仕様書 レース詳細
15
データの選定 中央競馬のみ(東京、中山、京都、阪神など10箇所) 障害競争は対象外とする 出走条件は3歳以上、4歳以上のみ
セン馬(去勢馬)は対象外とする
16
使用した特徴量 最初は以下の8種を用いた 性別 馬齢 斤量 …騎手体重を含めた負担重量 馬体重 増減 …前走からの体重増減
斤量 …騎手体重を含めた負担重量 馬体重 増減 …前走からの体重増減 脚質 …中盤までの位置どりの傾向(前側から逃、先、差、追) 複勝率 …3着以内の入着率 前走3F …前走の最後3ハロン(600m)タイム
17
データの加工 特徴量を作成するのに必要な処理を行う ラベル付け 訓練データのサンプリング レースの条件ごとにモデルをつくる
上記対象馬、競走中止馬などの削除 別のパラメータから計算をする必要のある特徴量の設定 ラベル付け ラベル1←3着以内 ラベル0←その他 訓練データのサンプリング ラベル0とラベル1の数を同じにする レースの条件ごとにモデルをつくる 競馬場、芝orダート、距離
18
実験方法 kNN Decision Tree Random Forest 訓練データ…2016年 東京芝1600m
Depth=15とする Random Forest 決定木の個数=51、Depth=15とする 訓練データ…2016年 東京芝1600m テストデータ…2017年 東京芝1600m それぞれ10回実行して、的中率、単勝回収率の平均を算出
19
競馬の賭け方 回収率…1年間、ラベル1(3着以内)と判断した馬に同じ額を賭けて、その年どれくらいの払い戻しがあったか
単勝・・・1着になるかどうかを当てる 他、7種類の馬券がある 当たったら、( 賭けた金額×その馬のオッズ )が払い戻される 例:11.4倍の馬に100円を賭けたら的中した→1140円払い戻し 回収率…1年間、ラベル1(3着以内)と判断した馬に同じ額を賭けて、その年どれくらいの払い戻しがあったか 勝つ確率を示す値 人気馬ほど低い
20
目標 回収率80%が目標 何も考えず、新聞を一瞬読むだけでも 80%の回収率が望まれる 2015年~2017年の全レース 0.213
(参考)1~3番人気だけに同額を賭けた場合の的中率、回収率 的中率 回収率 0.213 0.791 何も考えず、新聞を一瞬読むだけでも 80%の回収率が望まれる 回収率80%が目標
21
実験結果(1) 各方法の比較 ・RandomForestが一番精度が高い ・回収率はいずれも50%未満
22
特徴量を再設定 前回の8種に加え、以下の11種(計19種)を設定 馬番 …スタート位置 馬の獲得賞金額 前レース結果 調教師獲得賞金額
馬番 …スタート位置 馬の獲得賞金額 前レース結果 調教師獲得賞金額 調教師勝ち数 調教師勝率 調教師複勝率 騎手獲得賞金額 騎手勝ち数 騎手勝率 騎手複勝率
23
実験結果(2) 特徴量の数による比較 ・的中率はさほど変わらない ・k近傍法の回収率がとても良くなった
24
特徴量の評価 ランダムフォレストは各特徴量の重要度を測る事ができる
重要度…学習した結果、分類に影響する指標 重要度が低い特徴量を消去することで、より精度の高い分類器ができるのではないか
25
重要度の測定 重要度が低い性別、馬齢、斤量、増減を消去する
26
実験結果(3) 特徴量選定による比較 ・特徴量選定はk近傍法に悪い影響が出た ・その他の結果は大きな影響が出ていない
27
考察 kNNは総合的に精度が低い 特徴量を増やしたことによる精度の上昇 重要度の低い特徴量を消去しても良い影響が出るわけではない
欠損を定数で埋める量が多かった ノイズデータに弱いのではないか 特徴量を増やしたことによる精度の上昇 できるだけ多くの特徴量を設定したいところだが、ただ多くしても計算量が増えるし、分類に邪魔な特徴量が入るリスクが高い 重要度の低い特徴量を消去しても良い影響が出るわけではない
28
まとめ 目標(回収率80%)達成できず 今実験では以下の条件で最も高い精度の結果を出すことが出来た 手法:ランダムフォレスト 特徴量:15種
ラベル1:3着以内 結果:的中率60% 回収率60% 目標(回収率80%)達成できず
29
より精度を上げるには 他の方法でも試してみる 1レースの中で相対評価をする その馬の過去の成績から得意不得意を見つける 特徴量の調整
回帰分析(「勝ち負け」ではなく「タイム」を予測する) 1レースの中で相対評価をする 過去データを学習する→「この馬は勝つだろう」 ⇨過去データを学習する→「このレースなら、この馬が勝つだろう」 その馬の過去の成績から得意不得意を見つける 芝、ダート 短距離、長距離 右回り、左回り 特徴量の調整 ノイズが少なくなるように
30
参考文献 Sebastian Raschaka(2016)『Python機械学習プログラミング 達人データサイエンティストによる理論と実践』 (インプレス) AlphaImpact(2017)『第10回 決定木とランダムフォレストで競馬予測』<
31
昨日(3月4日)のレース 賭金:\8,000 払戻:\4,440 回収率:56%
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.