【问题标题】:Elo rating system: start value when players can join the game constantlyElo评级系统:玩家可以不断加入游戏时的起始值
【发布时间】:2010-12-25 06:38:09
【问题描述】:

我在游戏中实施了 Elo 评分系统。玩家人数没有限制。玩家可以不断加入游戏,所以玩家数量可能会逐渐增加。

Elo 值的准确计算方式并不重要,因为这样一个事实:如果 A 队击败 B 队,那么 A 的 Elo 胜利等于 B 的 Elo 损失。

因此,我对评分系统的起始值有疑问:

  • 我应该为每个玩家使用起始值“0”吗?所有 Elo 值的总和将是恒定的。但是由于玩家数量在增加,所以会有某种 Elo 通货紧缩,不是吗?
  • 我应该使用任何大于 0 的起始值吗?在这种情况下,所有 Elo 值的总和将不断增加。所以可能会出现 Elo 通货膨胀。问题:Elo 积分失去价值,但起始值始终保持不变。

我该怎么办?你能帮助我吗?提前致谢!

【问题讨论】:

  • 你在下面说你不希望 Elo 变成负数。那么你不能从 0 开始。如果你确实从 0 开始,如果你人为地将分数剪裁为保持 >= 0,那么所有 Elo 值的总和将不会是恒定的。
  • 是的,没错。但即使从 1000 左右开始也不能防止数字变为负数,不是吗?

标签: system rating


【解决方案1】:

您可以从零开始并在显示的分数上添加一个软糖因子以使其保持在零以上,或者您可以从 1000 开始 - 它们是相同的。是的,如果起点为 1000,系统中的总 ELO 点数将不断增加,但每个玩家的平均数始终相同 - 1000。Elo 的起点值始终是当前平均值。 ELO是一个零和游戏,玩家A失去的分数由玩家B获得。

当您将起点设置为 1000 时,您实际上是在说平均玩家 = 1000 分。对于一组封闭的初始玩家(beta 测试人员?),这是真的,在该组内平均 = 1000。但如果游戏是你随着时间改进的东西,那么与没有的人相比,你的封闭组平均玩家变得更加熟练玩过。

现在,当您将 1000 分配给新玩家时,您是在说新的普通玩家 = 现有的高技能普通玩家。这不是真的,他们的技能可能比你原来的封闭小组要低得多。因此,新玩家会失去积分,而您的高技能玩家会获得 => 通货膨胀。您需要做的是准确评估新玩家的技能,并为他们分配一个更符合他们实际技能的排名。这可以通过为他们的前 x 场比赛分配一个“临时排名”来完成,直到您对他们的技能有所了解。当临时排名时,只有他们的 ELO 分数会改变,而不是他们玩的人的分数。一旦他们加入真实系统,他们带入 ELO 的分数将大致等同于他们的实际技能,并且他们不会大幅上升或下降 => 没有通货膨胀或通货紧缩。

简而言之:临时排名

【讨论】:

  • 非常感谢!所以我可以给每个玩家1000个起点。但是新玩家在前 X 场比赛中只有一个临时分数。到目前为止正确吗?在这些 X 游戏中,他们只会像往常一样获得或失去分数,而他们的对手却不会。对吗?
  • 是的,完全正确。然后在几场临时比赛之后,你应该有一个大致反映他们真实能力的评级。将他们升级为普通玩家状态,并获得此评级,然后将他们与其他人一视同仁。
  • 好的。但起始值仍然是一个难点。通过选择非常弱的对手或非常强的对手——取决于起始是高于还是低于平均水平——我可以在 X 场比赛后对我的起始值产生很大的影响。我不能吗?
  • 负面评价怎么办?允许他们?或者如果它变成负数就不要改变评级?
  • 嗯,这与国际象棋中使用的 ELO 系统相同,它们不会得到负面评价。如果你从同一个起点开始,你也不应该。你离平均值越远,就越难继续远离,有一个有效的限制。在国际象棋中,“平均”= 1200 和“大师”= 2500,所以如果您能够从平均水平移动 1300 分,那么您就是大师。要获得负数,您需要从平均数中移出 1200+ 分 - 一个“负数”的糟糕表现大师。这将非常困难,我怀疑它永远不会发生。
【解决方案2】:

本网站使用 elo 评级系统。他们从 1200 开始

取自http://gameknot.com/help-answer.pl?question=29

GameKnot 评分系统基于固定 K = 20 的 Elo 评分系统并进行了以下修改:

前 20 场比赛用于在网站上建立玩家的评分。在前 20 场比赛中,玩家的评分计算为他/她所有对手的评分平均值,获胜时 +400,失败时 -400,平局相同。与临时评分的玩家对战时使用 +/-200 分。 玩家的评分在前 20 场比赛中是临时的,之后它就确定了。 在前 5 场评分游戏中,玩家的评分被视为等于 1200。

只有在游戏中至少进行了 3 次移动时,才会将超时计为胜利(无论移动了多少步,超时的玩家始终会计算失败)。

游戏开始和结束时的两个评分中较高的一个,用于计算游戏结束后的评分调整。

例如,如果在您的前 20 场评分比赛中,您打了 3 场比赛,并且您赢了 1200 个临时评分的玩家,然后输给了 1400 个已建立评分的玩家,但输给了 1600 个已建立评分的玩家,您的评分将是: ( (1200 + 200) + (1400 + 400) + (1600 - 400)) / 3 = 1467

或者,如果在您的前 20 场评分比赛中,您赢了 1200 临时,赢了 1400 定,输了 1600 临时,平了 1500,您的评分将是: ( (1200 + 200) + (1400 + 400) + (1600 - 200) + 1500 ) / 4 = 1525

【讨论】:

    【解决方案3】:

    Elo 计算两个球员或球队评分的差异,实际值无关紧要。您可以从任何您喜欢的数字开始。我为 Facebook Scrabble League 运行了一个初始值为 5000 的系统,只是为了将其与其他 Scrabble 评分系统区分开来。

    通货膨胀并不是由于高估的新人输给经验丰富的玩家而导致的——这一切都会随着时间的推移而平息。通货膨胀是由评分低于平均水平的人离开系统造成的。这与现实生活中的国际象棋不同,在线游戏中往往会发生这种情况,在现实生活中,通货紧缩是一个问题,因为评分高的玩家会退役并将他们的积分从系统中取出。

    但是您需要担心通货膨胀吗?唯一重要的是如果您希望将当前玩家的表现与历史数据进行比较 - 这不是任何在线游戏玩家都可能面临的问题。即使您确实担心通货膨胀,也很容易纠正。找出所有当前玩家的平均评分并将其与起始数字进行比较,如果它太高,请降低每个人的评分以使其恢复正常。以我的经验,每个收视期减少 1 或 2 分就可以解决问题,并且会导致很多新人受到打击而不再回来。

    许多系统会为新手提供更高的 K 值,以便他们更快地找到自己的等级。

    另一种方法是在新人玩完第一个评分期后才对他们进行评分,此时您可以根据 Elo 正确预测结果的情况来计算评分。如果您将所有未评级的玩家放在一起,这是不可能的,并且(我认为)如果您在锦标赛中有多个新人,则将涉及递归。它还破坏了 Elo 的零和原则,并消除了您衡量通货膨胀的能力。然而,在与使用该系统的人交谈时,我被告知在实践中“一切都变得平衡了”。

    我还要补充一点,我们有一位坚定的球员,他在过去四年中打了 732 场比赛,除了 21 场外,他的 Elo 仍然在 4100 左右。他每轮损失的评分正迅速接近零。

    【讨论】:

      【解决方案4】:

      我不知道它是否有用,但Mark Glickman's Ratings Page 讨论了 Elo 评级、下降等方面的一些问题(见最后几段)。另请参阅他的评级系统Glicko system,它似乎说明了播放频率并讨论了评级可靠性。最后,他的research page 有很多论文讨论评级及其可靠性。

      希望对您有所帮助。

      【讨论】:

      • 谢谢。我想使用 Elo 算法。那是肯定的。但我不知道从哪里开始:0 或任何正数(例如 1000)。
      • 如果您担心评级通缩/通胀,您将不得不对算法进行一些更改:例如可变 k 因子、评级点注入或两者兼而有之。我没有详细研究 Glicko 系统,但它处理了 Elo 算法的缺点。这是一个棘手的问题:祝你好运!
      • 新思路:Elo 分数的起始值始终是当前平均值。因此,如果我有 0、300、200 和 150 的用户,则第五个用户将获得 163 开始。这样会好吗?
      • 我认为你最好要么注入点,要么使用可变 K 因子,或者两者结合。从统计学上讲,我无法证明(还)你的方法是否考虑到通货膨胀或通货紧缩。顺便说一句,Glicko 系统是 Elo 的算法,但也有可靠性因素,所以原则上你可以使用它。好像已经在很多地方使用了。
      【解决方案5】:
      1. 玩家看到这个分数了吗?
      2. 玩家会理解 Elo 吗?
      3. 如果分数变为负数,玩家会继续比赛吗?

      我会让每个人都从某个正点值开始(10、100、1000,没关系)。当两个实力相对的人互相比赛时,比分按预期进行交易。您需要集中精力的地方是两个玩家之间的某种相对能力。

      假设,在游戏生命的后期,我有 25000 点,而你是 100 点的 n00b。我打败了你,我一无所获,你一无所失。为什么?因为我刚刚pwned一个n00b,这就是原因。新玩家击败首发玩家应该没有优势。此外,即使您处于某个积分范围内,您也应该实施一些措施,在某个时间范围内您只能从给定玩家那里获得这么多积分。

      显然,这将在您游戏的整个生命周期中不断调整。

      【讨论】:

      • 谢谢。玩家看到分数,因为它是玩家排名的主要标准。你想对“球员们理解 Elo”说些什么? Elo 分数不应变为负数。如果输了,输家不会得到任何减法,但赢家照常获得加法。
      • 你提到的关于 25,000 点与 100 点的事情:那将是通货膨胀,对吗?所以我只需要避免通货膨胀。
      • 不管怎样,当一个新玩家进入游戏时,你都会有一定程度的通货膨胀——无论你从 0 开始还是从 100 开始。如果我有 0,但不能变成负数,如果您赢得比赛,您将获得积分而不带走任何积分。那就是在系统中添加总分。所以一旦你承认你必须有通货膨胀,现在你必须决定遏制通货膨胀的措施。根据玩家的相对分数调整奖励/处罚是最好的调整方式。
      • 实际上,marco -- 如果您使用的是 ELO 系统,那么如果 25000 分的玩家击败 100 分的玩家,那么很少有分数易手。但如果 100 分的玩家击败了 25000 分的玩家,很多分就易手了。这是 ELO 系统的一大优势。
      【解决方案6】:

      也许,让积分无法低于首发,并将损失的金额放入某个“口袋”。

      假设玩家从 0 开始。 一名玩家的 elo 为 0 并失去 10 分。他不会失去任何东西,这点将进入一些口袋。 现在让我们想象一下玩家赢得了下一场比赛并得到 11 分。他不会得到那 11 分,而只会得到 1 分。而现在他的“口袋”将是 0 分。

      【讨论】:

        【解决方案7】:

        我认为 Internet 上大多数类似 ELO 的系统都会出现收视率攀升的问题。

        假设所有新玩家一开始的评分都是零。 LousyPlayer 输了十几场比赛,他的评分远低于零。是什么阻止他清除浏览器、在新电子邮件地址下注册新帐户并重新开始?

        如果这是可能的,那么排名较低的帐户将闲置,提高实际平均评分。

        【讨论】:

        • 非常感谢,我没有想到这个。所以我不能完全防止通货膨胀或通货紧缩,对吧?
        • 不!当每个人都扮演其他人时,ELO 可以完美运行……但当人们进出系统时就不行了。您应该看看其他游戏系统使用什么来防止通货膨胀或通货紧缩。
        • 这可以通过对系统进行更多游戏化(成就等)来避免 - 然后创建新帐户并不常见,因为玩家在这样做时会失去他们的“自我特权”。这在很多很多游戏中都有使用
        猜你喜欢
        • 2014-07-19
        • 1970-01-01
        • 1970-01-01
        • 2020-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多