PR

ロードマップ3:競馬予想AIモデルの評価方法

データサイエンス
この記事は約5分で読めます。
スポンサーリンク
スポンサーリンク

はじめに

本シリーズでは、動画で解説したモデル管理分析クラスの使い方のサンプルコードを載せます。

ロードマップ2で決定したモデル作成時の前提一覧については以下のページを参照ください。

競馬予想モデル詳細
競馬予想プログラムをPythonを使って開発しています。よくある回収率100%を超える競馬予想AIを目指すのではなく、違った視点から回収率100%を超える競馬予想AIの開発をしていきます。

競馬予想プログラムソフト開発の制作過程動画リスト

スポンサーリンク

モデルの評価方法

より詳しい解説は動画でお願いします

バッとここでモデルの評価方法を記載していますが、正直以下の動画を視聴してもらった方が評価方法について詳しく知ることができます。

お手数をおかけしますが、評価方法を理解したい方は動画を視聴ください。

また用語について、下記の記事より動画で用いている用語の方が正しいので、混乱する場合は動画のみを信じてください。

【競馬予想AI #6 】競馬予想AIモデルの評価方法が決まりました【ゆっくりと作る競馬予想ソフト開発 part6】
競馬予想プログラムソフトの開発過程を投稿していきます。単勝回収率100%超えを目指して、競馬予想AIを機械学習で作成します。今回の内容は、以下のサイトで詳細を解説しています。ソースを参考にされたい方はそちらを閲覧ください。

モデル自体を評価する場合

モデルの性能をどのように評価すべきか悩んだのですが、シンプルな方が分かりやすいと思うのでオッズグラフを比較することでモデルの優劣を決めようと思います。

ここで、オッズグラフで算出する情報は以下の3つです。

  1. オッズごとの勝率
  2. 集計対象のオッズの支持率
  3. 集計対象のオッズに対して回収率が100%を超えるための勝率

イメージは以下のページで話しています。

競馬予想モデル詳細
競馬予想プログラムをPythonを使って開発しています。よくある回収率100%を超える競馬予想AIを目指すのではなく、違った視点から回収率100%を超える競馬予想AIの開発をしていきます。

オッズグラフによる比較ということなので、モデルそのものの性能を測るためにまずは以下の2つを計算します。

【オッズスコア

  1. 支持率オッズスコア
    (オッズごとの勝率) と (集計対象のオッズの支持率) の差
  2. 回収率オッズスコア
    (オッズごとの勝率) と (集計対象のオッズに対して回収率が100%を超えるための勝率) の差

上記の値は、オッズごとの勝率が対象の支持率と回収率100%超えの勝率をどれだけ超えているかを表しています。つまり、上記2つの値が大きければ大きいほど評価が高いモデルとなります。

また、上記の評価だと例えば特定のオッズ帯で1回だけ賭けてそれが的中していた場合、そのオッズ帯に対する勝率が100%となってしまう。割合同士の比較しかしていないので、この評価方法だと少ない回数しか賭けてないオッズ帯の評価が過大に評価されてしまう可能性があります。

そのため、各オッズ帯に賭けた割合による加重平均を算出するようにします。つまり、モデルは以下の3つのオッズ帯に賭けていたとします。

オッズ帯勝率中央値の支持率賭けた数全体に対する割合
1.0 ~ 1.480%64%1530% (15/50)
1.5 ~ 1.950%45.7%3060% (30/50)
2.0 ~ 2.4100%35.6%510% (5/50)

上記の場合、先の評価方法だとオッズ帯2.0 ~ 2.4の勝率が100%であり、このオッズ帯の競走馬をモデルがベットすると予測すれば勝率100%を期待できるという判断になります。

しかし、そもそも全体の10%しか賭けていないためモデルの運用としてこの10%にすべてをゆだねるのは少々不安があるかと思います。

そのため、上記で求めた割合を用いて、以下のような加重平均を計算します。ここでは例として支持率との差の評価で見ます。

加重平均で見た支持率オッズスコアの場合
(80 – 64)×0.3 + (50 – 45.7)×0.6 + (100 – 35.6)×0.1 = 13.82
普通の平均で見た支持率オッズスコアの場合
((80 – 64) + (50 – 45.7) + (100 – 35.6)) ÷ 3 = 28.23

このように加重平均することで、ベット数が少ないオッズ帯を低く見積もりベット数が多いオッズ帯を高く見積もる評価ができるようになります。

この考え方は、各オッズ帯に対して賭ける数が多ければ多いほど、その勝率はモデルの真の値に近づくという前提を置いています。

そのため、加重平均とは真の値に近いものの評価を重くすることを意味するため、上記前提においてモデルの能力をより正しく評価していると考えています。

このようなステップを経て導出されるスコアをオッズグラフスコアと呼ぶことにします。

モデルAとモデルBを比較する場合

2つのモデルの優劣を決めたい場合、モデルAのオッズグラフAとモデルBのオッズグラフBを比較するやり方が良さそうということで、オッズグラフAとオッズグラフBそれぞれに対してモデルそのものの性能である【オッズグラフスコア】をやはり計算します。

また、さらに追加でベースラインをモデルBとした場合のモデルAの【オッズグラフスコア】を計算します。

【モデルBをベースラインとするモデルAの回収率オッズグラフスコア; AonBオッズグラフスコアとする】

計算方法:
(モデルAの回収率オッズグラフスコア) × (モデルAのオッズごとの割合) と (モデルBの回収率オッズグラフスコア) × (モデルBのオッズごとの割合) の差の総和

上記の計算式でAonBオッズグラフスコアを計算しています。要するに対象のオッズ帯に対する回収率オッズグラフスコアの重み付け値の差を取って比較しています。

そのため、この値が大きければ大きいほど、モデルAはモデルBよりも加重平均的に優れているとします。

モデルAとモデルBの優劣は、この加重平均した【オッズグラフスコア】の単純な大小比較と、【AonBオッズグラフスコア】の評価で決定することにします。

コメント

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