ChatGPTでtotoを当てる(2)

前回はJ-LeagueのWebサイトに掲載されている「みどころ」をChatGPTのプロンプトに与えることで精度向上を目指しました。
「みどころ」記事にはバイアスがかかっているため、なるべくバイアスがかからないように工夫する必要があるのですが、ひとまず第1363回のtotoについて予想してもらいました。予想と結果は下記の通りです。

ChatGPTによる予想と結果

1はHOME勝ち、0は引き分け、2がAWAY勝ちになります。
黄色が結果で、右側は実際の購入クジになります。
ご覧の通り惨敗です。
13試合中1試合しか的中しないという近年稀に見るハズレっぷりでした。

そもそもみんな当ててない

さて、言い訳なんですが、そもそも今回のtotoはかなりの無理ゲーでした。
1等も2等も出ていませんし、3等でも28口しか出てないので24万円の当選になっています。事前の投票率を見ても大分-水戸戦に至っては大分勝利が78%という割合にもかかわらず、結果は水戸の勝利です。G大阪-横浜FCも69%がG大阪勝利でした。結果はまさかの引き分けでした(終盤でポストに3,4回当たるというのは、不運なのか実力なのか・・・)。

他にも神戸-横浜FMもいきなり神戸が2点取りましたが、横浜FMの驚異的な追い上げや神戸のゴール取り消しなどもあって結果は横浜FMの勝利です。
これを予想出来る人はいないでしょうが、だからこそ予想出来た人は多額の当選金を得られるのです。

ChatGPTの予想

さて、ChatGPTにどのような予想をしてもらったかというと、下記のように「HOME勝利」「引き分け」「AWAY勝利」のどれになりそうかをそれぞれ確率で予想してもらいました。加えて予想の根拠も出力してもらっています。事前情報としては「みどころ」の文章と、前の試合の戦評のテキストを利用しています。
例えば広島-FC東京の予想は下記の通りです。

{
  "home_win": 0.4,
  "away_win": 0.3,
  "draw": 0.3,
  "reason": "広島が5連勝中で調子が良い一方、FC東京は勝ちがなく不安定な状況。しかし、過去の対戦成績はほぼイーブンであり、ディエゴ・オリヴェイラを中心にFC東京は力を発揮する可能性がある。広島の守備力は高いものの、ディエゴ・オリヴェイラに対抗する荒木隼人の守備は今節のポイントとなる。引き分けもあり得るが、広島の勢いを考慮し、ホームクラブが勝利する可能性が高いと考えられる。"
}

こんな感じで出力して貰いましたが、一番確率が高いものを購入して、引き分けと逆の予想が0.3以上の場合は理由を見て考える、という感じで購入しています。0.3以上を全部買うようにすると結構な金額になるのでここは致し方無しでしたが、結果としては買っておけば(一部は)当たりましたね・・・。

理由を読むと、それっぽいことが書いてあります。

広島が5連勝中で調子が良い一方、FC東京は勝ちがなく不安定な状況。しかし、過去の対戦成績はほぼイーブンであり、ディエゴ・オリヴェイラを中心にFC東京は力を発揮する可能性がある。広島の守備力は高いものの、ディエゴ・オリヴェイラに対抗する荒木隼人の守備は今節のポイントとなる。引き分けもあり得るが、広島の勢いを考慮し、ホームクラブが勝利する可能性が高いと考えられる。

ChatGPTによる広島-FC東京の予想根拠

この書き方を見て「まぁ広島が勝ちそうだけど引き分けも念のため買っておくか」となりました。結果はFC東京の勝利で見事ハズレました。

HOME勝利の予想が多い

購入した投票を見ても分かるとおり、ほとんどが「HOME勝利」の予想になっています。これは実際に今回の試合のほとんどがHOME有利だったという側面もありますが、それにしても極端です。
一つの理由として、記事を書いた記者のバイアスが考えられます。Jリーグの「みどころ」を執筆しているのは基本的にホームチーム側を専門とした記者になります。当然記事はHOME寄りになってしまうのです。もちろん記者の方はできる限り公平な目線で記事を書くと思いますが、バイアスというのはそう簡単には無くすことができないのです。

バイアス度合いを測定する

それではどの程度のバイアスがかかっているのか分からないでしょうか。例外はあるにせよ、「みどころ」を執筆している記者はほぼ毎回同じです。では、その人が書いた記事で「勝てる」「引き分け」と思わせているのにもかかわらずに負けてしまった試合がどのぐらいあるのかを計測してみましょう。

計測には過去2年間のJリーグの「みどころ」データを使い、ChatGPTに試合を予想して貰った上で、結果がどうなったかを評価しました。ChatGPTが「HOME勝利」と予想した割合と、実際にHOMEチームが勝利した割合を比較しています。

ChatGPTによる予想傾向

1列目がChatGPTによる勝利予想回数、2列目が実際の勝利数数です。勝利予想率は実際の勝利に対する勝利予想のパーセンテージを表しています。全てのJ1チームで120%を越えていますし、平均すると191%になります。敗北予想率や引分け予想の数と比較しても圧倒的に勝利予想の確率が高いのです。

さて、では実際にどれぐらい当たるのでしょうか。予想に対して当たったかどうかを計測してみました。60%以上の的中率は赤色でハイライトしています。

ChatGPTの正解率

引分け的中率はそもそも引分け予想が少ないのであてにならないとして、勝利的中率もそんなに悪くはありません。特に川崎Fは的中率78%なので、川崎FのホームゲームでChatGPTが勝利を予想していれば8割近く勝利となります。このようなバイアスがかかっている状況でChatGPTが「敗北」と予想したのなら負けそうなものですが、意外にも「敗北的中率」は「勝利的中率」より低くなりました。そもそも敗北予想の数が少ないので微妙なところですが、結果としては大して変わらない結果となっています。

勝利予想の条件を厳しくする

ここから的中率を上げるにはどうすればいいでしょうか。ホームクラブが勝利と予想した場合でも絶対に勝つと自信がある場合のみ勝利予想としてみてはどうでしょうか。
元々はChatGPTに大して「勝利・引分け・敗北のどれかを予想してください」というお願いでした。加えてスコアも予想してもらっています。ただ、スコアを予想してもらっても意味がない場合が多く、それよりもクラブ毎のパーセンテージを出して貰う方が扱いやすそうです。
そこで、「ホーム勝利の可能性」「アウェイ勝利の可能性」をそれぞれ数値で出力してもらい、さらに正規化してもらって合計が1になるようにしました。例えば第10節の横浜FCと札幌の対戦は下記の通りとなります。

{
"home": "横浜FC",
"away": "札幌",
"home_win": 0.4,
"away_win": 0.6,
"reason": "アウェークラブの札幌には、攻撃面での選手層の厚さが見られ、ホームクラブの横浜FCは未勝利で最下位の状況にあるため、アウェークラブ勝利の可能性が高いと判断した。ただし、ホームクラブ監督の四方田氏は相手選手をよく知っているため、試合展開によっては予想が変わる可能性もある。"
}

ChatGPTによる横浜FC-札幌の予想

この場合でも同様にホーム勝利にバイアスがかかるのですが、ホームが勝利するのは home_winが0.65以上の場合に限定してみます。away_winの確率が高ければアウェイ勝利とし、それ以外を引分けとします。つまり、ホーム勝利予想だとしても確度が0.6なら引き分けとしてみました。結果は以下の通りです。

調整後の勝利的中率

勝利的中率の平均は50.1まで上昇しました。引分け的中率は下がっていますが、もともと予想数が少なかった影響が大きそうです。さて、こんな感じでパラメータサーチを実施した結果、最良で下記のようになりました。

最良の調整結果

勝利的中率は50.1、引分け的中率は25.4、敗北的中率は43.6となりました。
ホームゲームで横浜FM、川崎F、札幌、鹿島がホームゲーム勝利と予想したときは勝利、G大阪、福岡、柏がアウェイ勝利と予想したときは敗北とするのが良さそうです。

第10節の予想と結果

さて、上記の結果を使って第10節を予想してみました。
結果は下記の通りです。

あと1つ

結果、あと1つで当選という惜しい結果でした。横浜FMの試合はChatGPTによると横浜勝利だったのですが、可能性が0.65に届いていなかったため引き分けをマルチで購入して当てました。
ただ、今回の当選金は下記の通りです。

当選金

3等で1,600円なのでかなり正解率は高かったようです。割と順当な結果になったため、ChatGPTでも当てられた、という感じです。
とはいえ、Jリーグをほとんど知らない人でもそれなりの正解を出せるようになったうえに、J2の知らないチームの試合でもコンスタントに当てられるようになりそうな気がしてきました。次回は更に情報量を増やして正解率を向上させていきます。

この記事が気に入ったらサポートをしてみませんか?