血統・種牡馬・コース傾向をデータから読み解く競馬分析ブログ

【競馬データ分析への道⑤】競馬で機械学習に挑戦

分析コラム
はじめに

前回の記事では、KaggleやSIGNATEのコンペティションへ挑戦し、データ分析や機械学習の世界に触れたことについてお話ししました。

【競馬データ分析への道④】Kaggle・SIGNATEへの挑戦

KaggleやSIGNATEを経験する中で、「対象となるデータを理解することの大切さ」を実感しました。
そこで私が思ったのは、
「競馬なら、自分の知識を活かせるのではないか。」
ということでした。
今回は、実際に競馬の機械学習モデルを作成した時のことを振り返ります。

競馬の機械学習を学び始める

競馬を題材に機械学習を学べるものがないか探していたところ、
YouTubeチャンネル
「競馬予想で始めるデータ分析・機械学習」
に出会いました。

動画では、
競馬予想モデルを一から作成する流れが丁寧に解説されていました。

YouTubeで学んだこと

この動画では、競馬予想モデルを作るために必要な一連の流れを学ぶことができました。

📌 学んだ内容
 ・netkeibaからWebスクレイピングでデータ取得
 ・スクレイピングしたデータからDataFrameを作成
 ・機械学習用の特徴量を作成
 ・LightGBMを使った予想モデルの作成
 ・3着以内に入る確率を求める方法

それまで資格の勉強で学んできた知識が、
実際に一つのシステムとしてつながった瞬間でもありました。

JupyterLabを実際に使うようになった

Python 3 エンジニア認定データ分析試験でも、
JupyterLabについて学びました。

しかし、その時は
「こういう開発環境がある」
という程度の理解でした。

実際にYouTube動画でもJupyterLabを使っていたことで、
セル単位でコードを実行したり、
DataFrameを確認しながら分析を進めたりと、
JupyterLabの便利さを初めて実感しました。

今でも私の競馬データ分析は、ほとんどJupyterLabで行っています。

自分だけの競馬予想モデルを作ろう

動画では中央競馬の予想モデルを作成していました。
しかし私は、
少し違う考えを持ちました。

中央競馬には、
 ・10か所の競馬場
 ・芝とダート
 ・距離の違い
など、条件がたくさんあります。

👤 あの頃の私
「これを一つのモデルで予想するのは難しいのでは?」

そう考えた私は、
まずは条件をできるだけ絞ろうと思い、
地方競馬の大井競馬場を対象に、自分だけの機械学習モデルを作ることにしました。

AIにも助けてもらいながら開発

もちろん、動画と同じようにはいきませんでした。
プログラムを変更するとエラーになることも多く、
どう修正すればよいか分からない場面もたくさんありました。

そんな時に助けてもらったのが、
ChatGPTでした。

エラーの原因を教えてもらったり、
コードの修正方法を相談したりしながら、
少しずつ自分のモデルを完成させていきました。

今思えば、この頃からAIを「答えを出してくれるもの」ではなく、
「一緒に考えてくれるパートナー」
として活用するようになっていたのかもしれません。

予想モデルは完成した

試行錯誤を重ねながら、
大井競馬場の機械学習モデルを完成させることができました。

LightGBMを使って、
各馬の「3着以内に入る確率」を予測できるようになりました。

競馬の知識を活かして、
特徴量を追加したり、
新しいアイデアを試したりすることもできるようになりました。
ここまでは、とても順調でした。

でも、また壁にぶつかった

モデルは完成しました。
しかし、
使っていくうちに、
だんだん違和感を覚えるようになりました。

例えば、
私自身が競馬を予想する時は、
血統や展開を重視します。

しかし、
機械学習が高く評価する馬は、
自分の感覚とは違うことが少なくありませんでした。

また、
機械学習は一頭ごとの確率を予測します。
でも競馬では、
逃げ馬が多いか、
ペースはどうなるか、
他の馬との組み合わせなど、
レース全体を考えて予想します。
そのような要素が十分に反映されていないように感じました。

さらに、
大井競馬だけでも
距離やクラスによって傾向は大きく異なります。

「距離ごとにモデルを分けるべきなのか。」
「クラス別に作るべきなのか。」

試せることはいくらでもあります。

でも、
何が正解なのか分からない。
その感覚は、
KaggleやSIGNATEに挑戦していた頃と同じでした。

「モデルは作れた。でも、自分が納得できる予想にはならなかった。」

一番気付いたこと

そして、もう一つ気付いたことがありました。
私は、
競馬を予想すること自体が好きだったのです。

もし機械学習が
「この馬が一番確率が高い」
と答えを出したら、
その通りに馬券を買うだけになります。

もちろん予想精度は大切です。
でも、
それでは私にとって競馬の楽しさがなくなってしまうように感じました。

私は、
「AIに予想してもらう」のではなく、
「自分でデータを分析して予想したい。」
そう思うようになりました。

今だから思うこと

機械学習モデルを作った経験は、
決して無駄ではありませんでした。

Webスクレイピング、
DataFrameの作成、
特徴量作成、
LightGBM。

現在の競馬データ分析でも活かされている技術ばかりです。

ただ、
私が本当にやりたかったのは、
AIに答えを出してもらうことではなく、
自分でデータを見て考え、予想することでした。

この気付きが、
私の競馬データ分析スタイルを大きく変えることになります。

次回予告

【競馬データ分析への道⑥】
機械学習からデータ分析へ
機械学習モデルは完成しました。
しかし、私は「もっと自分で考えながら予想したい」と思うようになります。
なぜ機械学習からデータ分析へ方向転換したのか。
そして、その中で統計を学ぶ必要性を感じた理由についてお話しします。

📖 関連記事
➡ 【競馬データ分析への道⑥】機械学習からデータ分析へ

タイトルとURLをコピーしました