【機械学習】競艇予想の結果を検証!

競艇予想の機械学習のサイトを作ってから1年ほど経ったわけですが、実際に作成した競艇予想がどのくらいあたったのかを検証してみました。

まあ結果から言うとあまり的中してませんでした。

予想サイト

ボートレース3連単予想(あしかぺんぎんのプログラミングの部屋)

あしぺん
あしぺん

競艇予想は難しいですね~

的中率と配当金の検証

今回は機械学習の際のモデル学習に使用していない、2019年4月1日から2020年3月31日までの34373レースで検証を行いました。

こちらが2連単、3連単の的中率です。

3連単の的中率は約3%です。3連単の全組み合わせ数が6×5×4=120通りと考えると3連単が当たる確率は1/120=約0.83%です。そう考えると3%は多いように感じますが、競艇は1コースが有利といった制限がありますから、必ずしも0.83%の確率とはいきません。

実際に実績の組み合わせの出現回数は以下のとおりでした。

すべての組み合わせが均等に出ているわけではないことがわかります。1着に1コースがある組み合わせの出現回数が明らかに多いことがわかります。

では、機械学習の出現回数を見てみましょう。

こちらも偏りがあり、1着に1コースが有る組み合わせの出現回数が多いことがわかります。ただし、実績に比べて出現回数が多い組み合わせの回数が極端に多いことがわかります。

上位5位までの組み合わせの回数の比較してみます。

こちらを見ても機械学習の方の1位2位は回数が極端に多いことがわかります。一方で、実績の1位2位の組み合わせの1-2-3、1-2-4は機械学習の組わせの3位4位にあり、回数も近いことがわかります。

次に実際に的中した組み合わせを見てみましょう。

上記のグラフから1-5-2の組み合わせが最も多いことがわかります。

それでは全レースの配当金を計算した結果を示します。毎レース3連単に100円を賭けた計算です。

機械学習の予想で得た配当金から支出を引くと約109万円損益でした。仮に最も実績で多かった組み合わせの1-2-3にずっと賭けた場合の配当金から支出を引いた金額は約60万円の損益でした。

かなりのマイナスですね。しかも安直に1-2-3賭けをした結果よりも悪い結果になるのは少し悲しい結果ですね。

機械学習の問題点

今回の結果から現在の機械学習の問題点を考えると、予想の偏りが大きい気がします。以下は的中回数を実績、機械学習の出現回数で割った割合です。

いずれも100%が望ましいですが、実績が少ない場合は的中回数が単純に少ないことを表しています。これより単純に的中率が低いことが考えられます。

また機械学習が少ない場合は、はずれが多い(的中はしているものの、出現回数が多いだけ)傾向が考えられます。1-5-2を見ると的中はしているものの機械学習が少ないということは、単純に機械学習の出現回数が多いだけということがわかります。

以上から

  • 機械学習のモデルに偏りがある → モデルの作成の仕方に問題がある

ということが言えると思います。作成の仕方のどこが悪いかは、元データが少ない説明変数が不適切などが考えられますが、今後検証していく必要があると思います。

また、それ以外にも機械学習の計算結果に6-5-5のような実在しない組み合わせが存在する場合があることがわかりました。これは私の作ったアルゴリズムに問題があります。

一方で、機械学習によって単純に1/120=約0.83%よりも的中したケースが多かった(約3%)という事実はうれしいことでした。

まとめ

約1年前に作成したボートレース3連単予想の検証を行った結果、さまざまな問題が見えてきました。

今後より精度を高められるように試行錯誤していきたいと思っています。

それにしても約109万円の損失は多すぎますね。

コメント

  1. a より:

    おはようございます。

    私も競艇予想をたまにしているのですが
    あしかぺんぎんさんはデータの持たせ方と目的変数をどうしていますか?

    データの持たせ方:
    1レコード1レースで1~6号艇の情報を1レコードに保持

    目的変数:
    各レースの1,2,3着をフラグ化
    →LightGBMで多値分類問題で解く

    という感じだともう少し的中率、回収率は高くなるかと思います。

    • ashikapengin より:

      aさん
      こんにちは。コメントありがとうございます!
      データは1レースごとでまとめてます。
      目的変数は3連単の点数(6×5×4通り)でOne-hot ベクトルとしています。
      LightGBMで多値分類問題は知らなかったので、勉強してみようと思います。
      ありがとうございます!

      • a より:

        ありがとうございます。
        なるほど。one-hotで2値分類として解いているんですね。
        であれば、多値分類として解く場合と殆ど精度は変わらないかもしれないです。
        ※参考サイト
        https://ai-lab-boatrace.xyz/blog/349/

        あと1-5-2の予想が多いというのが少々気になるところですね。。。

        ボートレース予想への本気度によるかもしれませんが
        特徴量ってどういうものをどれくらい入れられていますか?

        • ashikapengin より:

          aさん
          コメントに気づかず時間が経ってしまって大変申し訳ございません。
          参考サイトありがとうございます。
          勉強させていただきます。
          特徴量はフライング数、平均ST、勝率、競艇場、選手のクラス
          などを使っております。
          なかなか難しいですね。
          よろしくお願いいたします。

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