如何给予玩家排名/预测任务的分数?

时间:2014-05-27 21:25:42

标签: algorithm

我有一个用php / mysql构建的网站,我正在寻找帮助与程序员沟通我希望他用我想要创建的民意调查/预测游戏。

出于讨论的目的,假设有一个游戏,可能有100名玩家尝试预测高尔夫锦标赛中可能有9名高尔夫球手的前5名选手。

我正在寻找有关如何根据预测准确性创建和分配分数的帮助。

玩家使用拖放功能提供等级排序,以便从1到5对玩家进行排序。这种排序已经被编码,并且排名以某种方式存储在DB中(我不知道如何)。

我最初的想法是要求编码人员创建一个脚本,为玩家提名的前五名高尔夫球手分配1到5分。

因此,完美预测的玩家将获得12345的满分 他的第一个高尔夫球手获得1分先完成,第二个获得2分获得第二名,第三名高尔夫球手获得3分获得第三名,依此类推。

任何不完美的人都会得分高于12345。

前四个位置正确的玩家必须根据他们的第五个高尔夫球手的结束来区分。

所以,一个人可能得分12347而另一个12348和得分最高的球员(12348)将成为两个球员对决中的输家。

表现不佳的球员,得分可能为53419。

问题: 这是一种可行的方式来创建我的游戏玩家可以排名的分数吗?

是否可以简单地将Spearman等级相关关系计算出来,比较每个玩家的实际完成位置和预测的完成位置, 然后根据排名的相关系数对玩家进行排名?

感谢任何帮助澄清如何概念化这个,然后接近一个程序员,当我不知道我希望他提前做什么时会感到恼火。

2 个答案:

答案 0 :(得分:0)

这是一个非常有趣的问题。 似乎在评分中需要考虑三个组成部分:正确预测的数量,正确预测的顺序以及正确预测的权重。

例如,假设事实是: 1,5,10,15,20

以下是一些预测:

1,6,7,8,9:仅预测第一个 2,1,10,21,30:1和10,但是1的顺序是不正确的 20,15,1,5,30:在前5名中排名第4,但订单不正确

这取决于你最重视的东西。您可以先检查用户预测的前5位中有多少,添加一个值,然后惩罚错误的订单。这种方式每个位置的重量也应该不同 1,5,10,15,20的排名将高于1,5,10,20,15,高于1,10,5,20,15

Spearman可能正在工作,但我觉得它可能太粗糙了。

答案 1 :(得分:0)

这实际上是搜索引擎所具有的非常类似的问题。 EG,在搜索引擎评估中,实际结果是人类提供的首选结果,预测结果是搜索引擎提供的结果。在你的任务和搜索引擎中,我猜你更关心胜利者的准确性而不是第五名终结者的准确性。如果是这种情况,则mean average precision可能是一个很好的衡量标准。