サッカーの得点差によるレーティングの調整

はじめに

これまで学んできたイロレーティングやグリコレーティングは、どちらもチェスプレーヤーの強さの指標として作られたレーティングシステムです。
これをサッカーチームに応用しようと考えた時、試合の得点差によってある程度チームの強さがわかるのではと思いました。

経験上、実力差があればあるほど、得点差が開く傾向にあるのは、誰しも感じていることでしょう。
例外はもちろんありますが、アマチュアチームとプロチームが対戦した時には、多くの場合、プロチームが大差で勝つことになります。

チェスでは、大差で勝ったのか僅差で勝ったのかという、わかりやすい結果が存在しないため、もともとのレーティングシステムでは、単純に、
勝ち…1勝、引き分け…0.5勝、負け…0勝
で計算されています。

これをサッカーチームのレーティングを求める際に、
1点差勝ち…0.8勝、2点差勝ち…0.9勝
のように得点差によって微調整すれば、より正確なレーティングが求められるのでは、と考えました。

シグモイド関数とは?

x点差を何勝扱いにすればいいか、と悩んでいるうちに見つけたのが、「シグモイド関数」というものです。

シグモイド関数(sigmoid function)とは、数学や統計学において用いられる関数の一つで、S字型を描く関数のことを指します。シグモイド関数は、入力値を 0 から 1 の範囲に変換することができ、機械学習などの分野で、主に活性化関数として使用されます。

一般的な形式は以下のように表されます。

f(x) = 1 / (1 + exp(-x))

ここで、xは入力値を表し、exp(-x)はネイピア数 e の -x 乗(e の -x 乗を表す指数関数)を表します。sigmoid関数の入力値 x が十分に大きくなると、exp(-x)が0に近づくため、sigmoid関数の出力値 f(x)は1に近づきます。逆に、xが十分に小さくなると、exp(-x)が非常に大きくなるため、f(x)は0に近づきます。この性質は、sigmoid関数が入力値を0から1の範囲に抑えることができることを示しています。

ChatGPTによる回答

この関数を使えば、1点差、2点差、3点差と差が大きくなると 1 に近づき、−1点差(1点差負け)、−2点差、−3点差となるにつれ 0 に近づきますので、理想的な値が求まりそうです。

得点差の調整値

以下は、シグモイド関数をグラフにしたもの3種(青、緑、紫)と、以前にテキトーに作った独自の関数(赤の破線)、およびtanh関数(黄)です。

得点差による試合結果の調整値のグラフ

sig-2(緑)は得点差が+1の時、0.8勝になるように係数を調整したバージョンで、元のシグモイド関数よりも急勾配になっています。
sig-3(紫)は得点差が+1の時、0.7勝になるようにしたバージョンで、元のシグモイド関数よりも緩やかになっています。

それぞれの数値を下の表にしました。

得点差による試合結果の調整値の表

これらのうちどれを使えば、より正確なレーティングが求まるのかを、前述した損失関数を使って、調べてみたいと思います。

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