【发布时间】: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 好的,您能否提供有效的解决方案。