【问题标题】:Rating algorithm seems off评级算法似乎关闭
【发布时间】:2016-02-08 03:39:58
【问题描述】:

我正在为我的应用程序中的位置编写评分算法。该算法执行以下操作:

takes the average rating of a club and mulitplies by a club multiplier

a club multiplier is a decimal mulitplied against the average rating to account for a clubs impression against the total

目前我的算法如下:

CLUB RATING = SUM(RATINGS FOR CLUB) / COUNT(RATINGS FOR CLUB)

CLUB MULTIPLIER = CLUB TOTAL NUMBER OF RATINGS / TOTAL NUMBER OF RATINGS FOR ALL CLUBS

WEIGHTED VALUE = CLUB RATING * CLUB MULTIPLIER

我自己想出了这个算法。

我认为,通过评分数对所有俱乐部的影响来计算俱乐部的影响 评分数是乘数,我们将其与标准平均值相乘,以确定该俱乐部对所有俱乐部的加权平均值。

这是我的结果数据集:

Array
(
    [0] => Array
        (
            [locid] => 332
            [totalclubsnumratings] => 12321
            [clubaveragerating] => 4.4
            [clubnumratings] => 1121
            [clubmultiplier] => 9.0982874766659
            [weightedvalue] => 40.00
        )

    [1] => Array
        (
            [locid] => 329
            [totalclubsnumratings] => 12321
            [clubaveragerating] => 3.1
            [clubnumratings] => 909
            [clubmultiplier] => 7.3776479181885
            [weightedvalue] => 23.00
        )

    [2] => Array
        (
            [locid] => 1681
            [totalclubsnumratings] => 12321
            [clubaveragerating] => 4.7
            [clubnumratings] => 517
            [clubmultiplier] => 4.1960879798718
            [weightedvalue] => 20.00
        )

    [3] => Array
        (
            [locid] => 1710
            [totalclubsnumratings] => 12321
            [clubaveragerating] => 4.1
            [clubnumratings] => 505
            [clubmultiplier] => 4.0986932878825
            [weightedvalue] => 17.00
        )

    [4] => Array
        (
            [locid] => 3312
            [totalclubsnumratings] => 12321
            [clubaveragerating] => 4.2
            [clubnumratings] => 398
            [clubmultiplier] => 3.2302572843113
            [weightedvalue] => 14.00
        )

)

问题是我不知道它的计算是否正确。 locid 329 的俱乐部(第二俱乐部)的评分较高,但其平均评分远低于第三俱乐部,locid 1681 的评分数量较少但俱乐部评分的平均值较高。

我是否应该期望一些俱乐部具有较高的加权值但较低的俱乐部平均评分,或者我是否缺少重新确定俱乐部评分的第二种算法?

我希望有人看看这个并告诉我这个算法做错了什么。

【问题讨论】:

  • 你能发布你的实现代码吗?
  • 顺便说一句,如果CLUB MULTIPLIER = CLUB TOTAL NUMBER OF RATINGS / TOTAL NUMBER OF RATINGS FOR ALL CLUBS,它永远不会大于1。除以所有俱乐部的评分总数是没有实际意义的,因为该值对于所有俱乐部和可以缩短。
  • @lxg 好吧,我应该如何等同于俱乐部乘数。我今晚回家后会发布代码
  • 只是票数。但是,恕我直言,无论如何,你的逻辑是有缺陷的:你有两个维度——俱乐部的质量和选民的数量,它们并不真正相关。如果你有一个有很多评论的烂俱乐部,为什么它的评分应该比一个评论很少的烂俱乐部更好?您不能将俱乐部质量和选民数量合并为一个数字,就像您不能将毫秒和香蕉相乘一样。而且,在大多数提供某种评分的网站上,您总是会分别看到评分和选民人数。
  • @lxg 好的,您能否提供有效的解决方案。

标签: php mysql algorithm


【解决方案1】:

如果您想让黑客提出合理的不确定性,请首先计算所有俱乐部所有投票的平均投票方差。

然后对于每个俱乐部,调用其评级的标准差为sqrt(variance * votes)。 (这实际上是错误的。但效果很好。)你有一个中位数和 95% 的置信区间,每边有 2 个标准差。

现在您可以选择对俱乐部持悲观态度,并给每个俱乐部打分,比方说,比他们的中位数低 1 个标准差。如果你这样做,那么在 100 票后,一个评分为 2 5.0 的俱乐部可能会比评分为 4.5 的俱乐部更差。要获得真正的最高排名,您必须既要做得好,又要获得很多选票。

【讨论】:

  • 你能提供一个数字解决方案吗?
  • 只是签到。如果你能在数学中列出这一点,那么我可以明确地看到该怎么做,那就太好了。
猜你喜欢
  • 2018-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-29
相关资源
最近更新 更多