Elo rating system

原文:http://en.wikipedia.org/wiki/Elo_rating_system

Elo分級系統由美國物理學教授Arpad Elo提出,最初是用於計算象棋比賽中的選手的相對水平,現在已經廣泛用於很多類比賽的選手分級。

在一場比賽中,選手都有一個分數,這個分數代表了選手的實力。分越高表示選手實力也越高。而分數可以通過打敗其他選手來獲得。

Elo算法的實現細節如下:

假設選手A和B,當前擁有的分數分別爲RA和RB。

則選手A得分的期望值爲:

E_A = \frac 1 {1 + 10^{(R_B - R_A)/400}}.
類似地選手B得分的期望值爲:

E_B = \frac 1 {1 + 10^{(R_A - R_B)/400}}.
或者也可以表示爲:

E_A = \frac{Q_A}{Q_A + Q_B}
E_B = \frac{Q_B}{Q_A + Q_B}
其中:Q_A = 10^{R_A/400}Q_B = 10^{R_B/400}

顯然的,根據公式,有E_A + E_B = 1

期望值爲A的實際得分爲SA,則更新後的分數爲:

R_A^\prime = R_A + K(S_A - E_A).
這裏K是一個常數,對於實力較強的選手,設置K=16,以相對減小實力強的選手的增加得分(這基於一個常識,實力越強,後面提升的空間就相對越小)。對於實力較弱的選手,則設置K=32。

舉個例子,A的初始分數和1613,B的初始分數爲1609。則

EA = 1/(1+10^((1609-1613)/400)) = 0.506。

若A負於B,則SA=0(若A戰勝B,則SA=1,平局爲0.5)。

則R'a = 1613 + 32*(0 - 0.506) = 1597


Elo與一般的錦標賽得分制相比,優勢在於它考慮到了選手本身的實力差距。比如一個較強的選手戰勝了一個較弱的選手,這種勝利應該是理所當然的,因而獲得的分數就會相對較少。而反之一個較弱的選手戰勝了一個較強的選手,這種勝利不太常見,就會相應提高贏得的分數。這樣相對而言更爲公平。

Elo分級算法的一種潛在的應用是,用在電子商務中商品之間的比較。可以通過一系列指標給所有商品一個初始的分數。然後通過用戶的決策,如瀏覽、收藏、購買這些行爲來形成比較,從而選出優勝的商品。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章