hayato-yokoyama / jleague-result-prediction

Predicting Winners and Losers in J-League Soccer Using Machine Learning
0 stars 0 forks source link

ポアソン分布を用いた得点の予想 #3

Closed hayato-yokoyama closed 3 years ago

hayato-yokoyama commented 3 years ago

概要

(http://redandwhite.hatenablog.com/entry/2016/01/23/174813) のブログ記事を参考にする

ホームでの平均得点(Hs:Home scored)、ホームでの平均失点(Hg:Home gave)、アウェーでの平均得点(As:Away scored)、アウェーでの平均失点(Ag:Away gave)の4つのデータを元に得点モデルを構築し、ポアソン分布に基づいて試合結果を予測。

ポアソン分布 ・・・ ある期間に平均λ回起こる現象が、ある期間にk回起きる確率の分布

90分間で平均λ得点するチームがちょうどk得点する確率をだすことができるので、チームごとの平均得点の情報を使えば、その試合でk得点することが予想できる。

今回は2020シーズンの25節までを訓練データ、34節までの残りの9節分をテストデータとしてみる。

やること

hayato-yokoyama commented 3 years ago

2020シーズンJ1所属全チームのデータ集計

この数値をもとにチームごとの攻撃力と守備力を算出する

hayato-yokoyama commented 3 years ago

チームごとの攻撃力、守備力を算出

各チームのHA(ホームでの攻撃力)、HD(ホームでの守備力)、AA(アウェーでの攻撃力)、AD(アウェーでの守備力)を算出し、HaHdAaAd.csvにまとめた。

攻撃力は高いほど得点をとりやすいことを示しているのに対し、守備力は低いほど失点しにくいことを示している 例えばHA=1.5の場合、ホームで平均の1.5倍得点を取りやすく、HD=1.5ならば、ホームで平均の1.5倍得点を与えやすい

これらのHA、HD、AA、ADからホームとアウェイのチームが平均何得点出来るかを以下の式で算出

λ(home)=aveHs×HA(home)×AD(away) λ(away)=aveAs×AA(away)×HD(home)

→ 「ホームで平均のHA倍点を取りやすいチームとアウェーで平均のAD倍失点しやすいチームが対戦した場合、ホームチームは平均のHA×AD倍の得点をする」 という算出方法

算出結果

→HaHdAaAd.csv

hayato-yokoyama commented 3 years ago

例) 2020 26節 清水 vs 神戸

25節までの両チームのホーム・アウェイごとの攻撃力・守備力

team HA HD AA AD
清水 1.1555573200750056 1.621409216801816 0.5518193249569514 1.3687053100635793
神戸 1.1682557521637418 1.3303870496835415 1.195608537406728 1.098343767334971

したがって

λ(清水)=aveHs×HA(home)×AD(away) = 1.9 λ(神戸)=aveAs×AA(away)×HD(home) = 2.7

→ 1-3,2-3,1-2 ぐらいで神戸が勝つだろう、、、

ポアソン分布で予測したグラフ

image

考察

最も可能性の高いスコアは 清水1 - 2神戸となった。 しかし実際は、清水3-1神戸となり、全く予測は当たらなかった。 清水が26節から監督を交代して試合に望んだことが影響したかも知れない とりあえず、残りの 9節×9試合=81試合分 を予測してみる。

hayato-yokoyama commented 3 years ago

26節から34節(最終節)までの対戦データ(81試合分)を準備する

https://data.j-league.or.jp/SFMS01/ で、2020年とJ1リーグ、第26節から第34節までを検索条件に加えて、データを取得する。そして取得したデータを前処理する。 前処理すること

取得したデータ→ match_26to34.csv

hayato-yokoyama commented 3 years ago

予測スコアを出す

match_26to34.csvにて、ホームチーム・アウェイチームの対戦カードと得点、H/Aを取得する。 それをもとに26節から34節(最終節)までのスコアを予測し、勝敗的中率とスコア的中率を出す。

やること

予測スコア → predict_26to34.csv

予測結果・精度

勝敗を的中させた試合が81試合中38試合あり(的中率46.9%)、思っていたよりも良い結果になった。

予測の傾向として、ポアソン分布でのスコア予測は0~2点ほどのロースコアな展開を予測することが多く、3得点以上のハイスコアな展開を予測できないケースが目立った。 image

今後のアクション