gpt4 book ai didi

javascript - 如何修改 Elo 评级以获得更大的分差?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:02:08 25 4
gpt4 key购买 nike

问题:

如果你去http://www.newedenfaces.com/在底部你可以看到玩家排行榜。每个人都以 1400 的基本分数开始。数据库中目前有超过 1100 名玩家,每次投票时都会随机选出两人。截至目前,最高评分为 1572。此外,排行榜非常不稳定今天刚刚进入前 10 名的人现在在 70+ 范围内

我希望分数更重要。排行榜上的大多数人的评分仅相差几分,有些人的评分甚至相差无几。

对于丑陋和冗长的代码深表歉意。稍后我需要重构它。

eloRating: function(winnerIndex) {

var kFactor = 16;

if (winnerIndex == 0) {
// A won
var ratingA = this.collection.at(0).get('rating');
var ratingB = this.collection.at(1).get('rating');

var scoreA = this.collection.at(0).get('wins');
var scoreB = this.collection.at(1).get('wins');

var expectedA = 1.0 / (1.0 + Math.pow(10, ((ratingA - ratingB) / 400)));
var expectedB = 1.0 / (1.0 + Math.pow(10, ((ratingA - ratingB) / 400)));

var newRatingA = ratingA + (kFactor * expectedA);
var newRatingB = ratingB - (kFactor * expectedA);

this.collection.at(0).set('rating', Math.round(newRatingA));
this.collection.at(1).set('rating', Math.round(newRatingB));
} else {
// B won
var ratingA = this.collection.at(0).get('rating');
var ratingB = this.collection.at(1).get('rating');

var scoreA = this.collection.at(0).get('wins');
var scoreB = this.collection.at(1).get('wins');

var expectedA = 1.0 / (1.0 + Math.pow(10, ((ratingB - ratingA) / 400)));
var expectedB = 1.0 / (1.0 + Math.pow(10, ((ratingB - ratingA) / 400)));

var newRatingA = ratingA - (kFactor * expectedA);
var newRatingB = ratingB + (kFactor * expectedA);

this.collection.at(0).set('rating', Math.round(newRatingA));
this.collection.at(1).set('rating', Math.round(newRatingB));
}

最佳答案

您的预期分数等式不正确。例如,根据您的等式,高 400 分的人的预期分数为 10/11 (0.909)。这是不对的,因为实际中奖概率比这个高(大约0.919)。这是真正的等式:

ELO win probability

其中 D 是标准差中的点数(通常为 400 点)。该等式没有封闭形式,因此必须使用预先计算的值表。

此外,更重要的是,您没有正确计算调整。获胜者获得 (1-e)**k* 分。失败者失去 (e)**k* 分,其中 e 是玩家的预期分数。因此,如果玩家 A 比 B 高 400 分并获胜,那么他将获得 (1-0.919)*k = 1.296 分,而失败者将失去 1.296 分。在您的计算中,获胜者获得 14.7 分 (!!!),失败者失去 14.7 分。

关于javascript - 如何修改 Elo 评级以获得更大的分差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17075658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com