サッカーの得点差によるレーティングの調整
はじめに
これまで学んできたイロレーティングやグリコレーティングは、どちらもチェスプレーヤーの強さの指標として作られたレーティングシステムです。
これをサッカーチームに応用しようと考えた時、試合の得点差によってある程度チームの強さがわかるのではと思いました。
経験上、実力差があればあるほど、得点差が開く傾向にあるのは、誰しも感じていることでしょう。
例外はもちろんありますが、アマチュアチームとプロチームが対戦した時には、多くの場合、プロチームが大差で勝つことになります。
チェスでは、大差で勝ったのか僅差で勝ったのかという、わかりやすい結果が存在しないため、もともとのレーティングシステムでは、単純に、
勝ち…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の範囲に抑えることができることを示しています。
この関数を使えば、1点差、2点差、3点差と差が大きくなると 1 に近づき、−1点差(1点差負け)、−2点差、−3点差となるにつれ 0 に近づきますので、理想的な値が求まりそうです。
得点差の調整値
以下は、シグモイド関数をグラフにしたもの3種(青、緑、紫)と、以前にテキトーに作った独自の関数(赤の破線)、およびtanh関数(黄)です。
![](https://assets.st-note.com/img/1683424321522-HGtsxjYnZW.png?width=800)
sig-2(緑)は得点差が+1の時、0.8勝になるように係数を調整したバージョンで、元のシグモイド関数よりも急勾配になっています。
sig-3(紫)は得点差が+1の時、0.7勝になるようにしたバージョンで、元のシグモイド関数よりも緩やかになっています。
それぞれの数値を下の表にしました。
![](https://assets.st-note.com/img/1683425139645-C9awdw5Thd.png)
これらのうちどれを使えば、より正確なレーティングが求まるのかを、前述した損失関数を使って、調べてみたいと思います。
この記事が気に入ったらサポートをしてみませんか?