Elo 评级系统,更好的选择?

Rating System with Elo, better alternatives?

我正在研究评级算法。我有一套练习。它们都按级别分类(1 = 最简单,5 = 最难)。

用户会看到两个练习,他们应该决定哪一个更难,或者两者是否相等。应根据用户评分调整级别。

我做了什么: 我尝试了 Elo 评分。

我的问题: 有没有更好的算法来做这个用例? (到目前为止什么也没找到)

提前致谢并干杯。 托比

我会尝试以一种简单但(我希望)有效的方式解决问题。

首先,您仅在投票与系统实际预期不同时才更新行使评级。从现在开始,我将只考虑用户输出与系统实际预期不同的情况。

其次,我会更重视两个级别差异较大的选票。对评分为 2 和 3 的两个练习的错误期望的影响应该小于对评分为 1 和 5 的两个练习的错误期望的影响。

也就是说,我的算法将遵循:

1- 设置了一个固定的百分比,我们称它为increment。它确定了投票的影响百分比,并且可以根据用户数量在此过程中进行修改。

2- 对于 "unexpected" 投票,我会计算原始水平之间的差异(最小为 1)。

diff = max(1, abs(ex1.level - ex2.level))

3- 我会根据 incrementdiff 的乘积按百分比更新每个运动评分。

if (ex1 level expected bigger)
    ex1.rating = ex1.rating + diff*increment;
else
    ex1.rating = ex1.rating - diff*increment;

评级为浮点数,级别为 rating:

的四舍五入
ex1.level = round(ex1.rating)

示例

让我们设置increment = 0.1exA,评分 2.0,级别 2 与 exB,评分 3.0,级别 3.

进行比较

第一个用户选择 exB 作为最难的。没有任何变化,因为这是系统预期的结果。

第二个用户选择exA。这不是预期的结果。两次练习之间的差异为 1,因此评分被修改为 1*0.1 = 0.1, 导致 exA.rating = 2.1 for exB.rating = 2.9