需要想法来创建判断算法


Need ideas to create a Judging algorithm

我有一个PHP评级系统(1-5),其中,一些评委来评价一些产品。我希望这些产品的结果是公平的。通常情况下,一些评委非常严格,可能只在1-2的范围内对产品进行评分。虽然有些评委只对产品进行 4-5 的评分。有些人在 1-5 之间做出正确的判断。

有人可以给出一个想法或帮助为平均法官创建一个算法,该算法可以缩放评委的评级并计算产品分数。

我想过衡量所有产品的评委分数,但这是前进的方式,还是有人有另一个很好的选择来获得公平的结果。

编辑

评级系统不适用于电子商务应用程序。在这里,只有少数评委说 10 对所有产品进行评分。例如,该产品可能是比赛中的一首歌。有些法官可能非常严格,有些法官可能非常自由。也许有几场比赛,所以我必须记录这些非常严格和自由的评委的评分,即使是其他比赛,并为他们制定规则。

简单地说,你根据法官的典型投票范围给他们分配一个权重(注意,他们一定不知道这个权重,否则他们会把系统搞砸。总是投票给一个分数的评委得到的权重最低。给事物打分范围很广的评委被认为更准确。

这也假设这些评委对产品的质量进行了公平的评判;所以如果你给他们一堆好或坏的产品,并期望一系列的投票水平,这可能是不现实的。

您正在寻找的是具有最高权重的

选票中具有最高标准差(最高变化)的法官,而具有最低权重的法官将具有最少的权重。

非算法解决方案(本质上)是在评委上运行算法,然后选择美国偶像风格的评委,相互平衡以获得准确的结果。在这种情况下,您需要注意平均选票和标准差,也许设置三个评委,一个具有宽标准差,然后两个窄评委,一个高一个低(自由和严格)来判断它。这样,他们就不会觉得自己因为更严格或更宽松而"声音更少"。

再说一次,这可能是他们减少/更严格的动力 - 如果他们对产品太容易或太苛刻,他们就会"失去声音"。

听起来您可能正在尝试将算法解决方案应用于非算法问题。我会思考为什么一些"法官"只投票 1-2,而其他人只投票 4-5。

一个可能的原因可能是自我选择。例如,在线购买商品的人如果对购买感到特别失望或特别满意,则更有可能评论该商品。如果这是你的问题,你可以尝试鼓励购物者投票更多,这样即使是那些有非极端经验的人也会回来投票。

另一个可能的问题可能是指导。也许你对评级系统的解释对评委来说不清楚。您可以尝试添加每个评级含义的描述,看看这是否会提高数据质量。

总之,任何解决评级问题的方法都需要有一个"人"的成分,并考虑到评委如何选择评级以及为什么选择评级的完整故事。如果您的输入数据质量差,排名算法可以做的并不多。另一方面,如果你的数据质量不错,那么取平均值效果很好。

取平均值的一个不相关的问题是,具有一个 5 星评级的项目将排在具有一百个 5 星评级 + 一个 4 星评级的项目之上。一个简单的解决方案是拉普拉斯平滑,它通过有效地以每个值(1,2,3,4,5)的一票开始每个项目来解决这个问题。您不显示"平滑"值,但在排序时使用它们。请参阅如何不按平均评分排序帖子以获取替代解决方案。

断的意思怎么样?这是对这个想法的一个很好的解释。

编辑

假设你有这样的投票:[1,4,3,2,5,1,1,3,2,4] .

您需要按升序对数组进行排序,得到:[1,1,1,2,2,3,3,4,4,5] .

然后假设你想摆脱 25% 的选票,这是3(四舍五入)。你只需从左边和右边丢弃三票,给你[2,2,3,3].

然后,使用算术平均值来获得2.5

编辑 2

根据您的数据库架构,您可以查询数据库以按升序返回投票。然后,计算百分比,使用array_slice()来帮助您(阅读文档),计算算术平均值是您现在最不关心的问题。