Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
競馬予測の考え方
Search
Issei Mori
June 14, 2016
Programming
2
6.3k
競馬予測の考え方
ウマナリティクス #1 で発表したときの資料です。
Issei Mori
June 14, 2016
Tweet
Share
Other Decks in Programming
See All in Programming
perlをWebAssembly上で動かすと何が嬉しいの??? / Where does Perl-on-Wasm actually make sense?
mackee
0
260
PostgreSQLで手軽にDuckDBを使う!DuckDB&pg_duckdb入門/osc25hi-duckdb
takahashiikki
0
230
Flutter On-device AI로 완성하는 오프라인 앱, 박제창 @DevFest INCHEON 2025
itsmedreamwalker
1
170
開発に寄りそう自動テストの実現
goyoki
2
1.6k
AI前提で考えるiOSアプリのモダナイズ設計
yuukiw00w
0
210
Navigating Dependency Injection with Metro
l2hyunwoo
1
200
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.4k
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
1
210
脳の「省エネモード」をデバッグする ~System 1(直感)と System 2(論理)の切り替え~
panda728
PRO
0
130
PC-6001でPSG曲を鳴らすまでを全部NetBSD上の Makefile に押し込んでみた / osc2025hiroshima
tsutsui
0
200
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
430
AI Agent Dojo #4: watsonx Orchestrate ADK体験
oniak3ibm
PRO
0
120
Featured
See All Featured
Design in an AI World
tapps
0
100
Docker and Python
trallard
47
3.7k
The Cult of Friendly URLs
andyhume
79
6.7k
Building an army of robots
kneath
306
46k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
81
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Why Our Code Smells
bkeepers
PRO
340
58k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.9k
エンジニアに許された特別な時間の終わり
watany
106
220k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
61
47k
Transcript
競馬予測の考え方 @stockedge 1
自己紹介 本名 森 一生 個人事業主です。Web制作、機械学習、自然言語処理、etc。 個人的に(趣味で)作成したWebサイトなど。 2 推奨銘柄無料公開ブログ 家賃相場
今年の正月に書いた記事 10万PV以上のアクセスがありました。 3
ちなみに… ブログでは偉そうなこと書いてますが 競馬に関しては素人です ツッコミ大歓迎! 4
今日は競馬予測の考え方について話します 1. 戦略について 2. モデルについて 3. 評価方法について 5
1.戦略について 6
Q.そもそも、なぜ予測するのか? 7
A.お金を儲けたいから! 8
お金を儲けるためには… ただ単に良い予測をするだけではだめ 他の人より良い予測をしなければならない! 戦略的に考えよう 9
自分の強みを考えよう 我々の強み プログラミングの知識 機械学習の知識 10
プログラミングで出来ること 手間のかかる作業の自動化 11
分析するのに手間のかかる特徴量を使おう! 例:親馬や兄弟馬の成績、時系列オッズなど 12 だから…
注意点 闇雲に手間をかければいいというものではない 分析しても無駄な特徴量もあるので… 徒労を避けるためには競馬の知識が必要 13
機械学習で出来ること 色々な特徴量を総合的に考慮できる 14 脚質、オッズ、血統、騎手、etc
既存の競馬予想方法の問題点 既存の競馬予想方法は 特定の特徴量にだけ着目するものが多い 使える特徴量は全て使おう! 15
強みを自覚して戦略的に使おう! 我々の強みは プログラミングの知識 機械学習の知識 積極的に活用しよう! 16
2.モデルについて 17
モデルを作る前にデータをきれいにしておこう 新馬戦、障害戦は除外 出走取消、競争除外も除外 正規化(平均0分散1にする) etc... 18
私が競馬予測のために作ったモデル 使用した特徴量は67個 前述のとおり手間のかかる特徴量を多く取り入れた 線形モデルでモデル化 過学習が怖かったのでシンプルなモデルを使った 19
モデルについてもう少し詳しく はおいしさ指数 はi番目の特徴量 はパラメータ 20 つまり 「勝ち馬」ではなく 「儲かる馬」を予測
なぜ線形モデルを使う? 理由1 既に卍氏が線形モデルで成功している 理由2 シンプルなモデルなので過学習しにくい 21
モデルをどう学習させるか モデルの学習とは の を最適化すること 目的関数は回収率の最大化 22
最適化手法 勾配計算が不要な手法なら何でもOK 私はCMA-ESを使っていた(過去形) あるいは今流行のBayesian Optimizationとか 23
勝ち馬の予測はだめ? 「1着になる確率」を予測 「投票率」を予測し「1着になる確率」と比較 二つの問題を解く必要がある 私は複雑な問題が苦手なのでやめた 24
3.評価方法について 25
モデルの評価方法 ローリングウィンドウ法を使う 26 学習 テスト 学習 テスト 学習 テスト 学習
テスト
回収率の高さが最重要、というわけではない もちろん回収率が100%を超えていないと賭ける意味はないのだが… 回収率120%だが年一回しか賭けるチャンスが無い方法 回収率101%だが毎週賭けるチャンスがある方法 トータルで考えたら後者の方が良い! 27
リスクの評価も忘れずに リスクとはリターンの分散のこと リスク大 リスク小 28
特徴量に確定オッズを含めないようにしよう 特徴量に確定オッズを含んでいる場合 パフォーマンスが過大評価される(経験済み) 現在は投票締め切り30分前のオッズを使用 29 JRA等から取得可能
賭け金の決め方 卍氏と同じ投資法をそのまま採用 賭け金 = 資金残高 * 0.1 / 30分前オッズ 収支が安定するのでリスクを減らせる
30
実際にどれぐらいのパフォーマンスがでるか 過去10年分のデータ(37万件)を使って実験した 学習データ5万件、テストデータ1万件 ローリングウィンドウ法で学習とテストを31回繰り返した 31 おいしさ指数 平均リターン 標準偏差 最大ドローダウン 買い目割合
0以上 0.028% 3.128% 99.9% 51% 10以上 0.047% 3.169% 99.9% 35% 20以上 0.066% 3.217% 98.0% 21% 30以上 0.083% 3.259% 98.4% 11% 40以上 0.136% 3.336% 83.1% 5%
問題点 ドローダウン大きすぎ 資金配分を追い下げにすれば破産はしないはず マーケットインパクトを考えていない 重賞レースなど投票数が多いレースにだけ賭ける 32
これで完成というわけではない まだ分析ができていない特徴量がある リスクが高いのも何とかしたい 年内中には何かしらの形で公開予定 33
ご清聴ありがとうございました 34