原文:http://en.wikipedia.org/wiki/Elo_rating_system
Elo分級系統由美國物理學教授Arpad Elo提出,最初是用於計算象棋比賽中的選手的相對水平,現在已經廣泛用於很多類比賽的選手分級。
在一場比賽中,選手都有一個分數,這個分數代表了選手的實力。分越高表示選手實力也越高。而分數可以通過打敗其他選手來獲得。
Elo算法的實現細節如下:
假設選手A和B,當前擁有的分數分別爲RA和RB。
則選手A得分的期望值爲:
顯然的,根據公式,有
期望值爲A的實際得分爲SA,則更新後的分數爲:
舉個例子,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分級算法的一種潛在的應用是,用在電子商務中商品之間的比較。可以通過一系列指標給所有商品一個初始的分數。然後通過用戶的決策,如瀏覽、收藏、購買這些行爲來形成比較,從而選出優勝的商品。