Algorithm 具有Elo的评级系统,更好的替代方案?

Algorithm 具有Elo的评级系统,更好的替代方案?,algorithm,rating,Algorithm,Rating,我正在研究评级算法。我有一套练习。它们都按级别分类(1=最容易,5=最难) 用户会看到两个练习,应该决定哪一个更难,或者两者是否相等。根据用户评分,应调整级别 我所做的: 我尝试了Elo评分 我的问题是: 有没有更好的算法来完成这个用例?(到目前为止没有发现任何东西) 提前谢谢,干杯。 托比我会尝试以一种简单但(我希望)有效的方式解决这个问题 首先,只有当投票与系统实际期望的不同时,才更新练习评分。从现在起,我将只考虑用户输出与系统实际期望不同的情况 第二,我会给两个级别有很大差异的选票更多的权

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

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

我所做的: 我尝试了Elo评分

我的问题是: 有没有更好的算法来完成这个用例?(到目前为止没有发现任何东西)

提前谢谢,干杯。
托比

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

首先,只有当投票与系统实际期望的不同时,才更新练习评分。从现在起,我将只考虑用户输出与系统实际期望不同的情况

第二,我会给两个级别有很大差异的选票更多的权重。对评级为2和3的两个练习的错误预期的影响应小于对评级为1和5的两个练习的错误预期

也就是说,我的算法大致如下:

1-设置了一个常量百分比,我们称之为
increment
。它确定了投票产生的影响百分比,并且可以根据用户数量进行修改

2-对于“意外”投票,我会计算原始水平之间的差异(至少为1)

3-我会根据
增量
差异
的乘积,以百分比的形式更新每个练习评分

if (ex1 level expected bigger)
    ex1.rating = ex1.rating + diff*increment;
else
    ex1.rating = ex1.rating - diff*increment;
评级为浮动,级别为评级的四舍五入:

ex1.level = round(ex1.rating)
示例

让我们设置
increment=0.1
<代码>exA,评级为2.0且等级为2级,与
exB
,评级为3.0且等级为3级进行比较

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

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

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

首先,只有当投票与系统实际期望的不同时,才更新练习评分。从现在起,我将只考虑用户输出与系统实际期望不同的情况

第二,我会给两个级别有很大差异的选票更多的权重。对评级为2和3的两个练习的错误预期的影响应小于对评级为1和5的两个练习的错误预期

也就是说,我的算法大致如下:

1-设置了一个常量百分比,我们称之为
increment
。它确定了投票产生的影响百分比,并且可以根据用户数量进行修改

2-对于“意外”投票,我会计算原始水平之间的差异(至少为1)

3-我会根据
增量
差异
的乘积,以百分比的形式更新每个练习评分

if (ex1 level expected bigger)
    ex1.rating = ex1.rating + diff*increment;
else
    ex1.rating = ex1.rating - diff*increment;
评级为浮动,级别为评级的四舍五入:

ex1.level = round(ex1.rating)
示例

让我们设置
increment=0.1
<代码>exA,评级为2.0且等级为2级,与
exB
,评级为3.0且等级为3级进行比较

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

第二个用户选择
exA
。这不是预期的结果。这两个练习之间的差值为1,因此评分修改为系数1*0.1=0.1,
对于
exB.rating=2.9
exA.rating=2.1
。我建议进行Elo评级,在该评级中,您可以循环多次比较,每次都会使Elo调整更小。这消除了投票顺序的影响。这看起来很有趣,但没有限制。我建议进行Elo评级,在该评级中,您可以循环多次比较,每次都会使Elo调整更小。这消除了投票顺序的影响。