4

我最近想知道http://500px.com如何计算他们的“Pulse”评级。“Pulse”是根据照片的受欢迎程度从 1..100 开始的分数。

我认为它可能会使用以下一些标准:

  • 点赞数
  • “收藏夹”数量
  • 评论数
  • 总浏览
  • 可能是照片上传后的时间
  • 可能还有其他一些不明显的标准,例如用户的关注者数量、用户排名、相机型号或类似的

我将如何实现这样的某种算法?

任何有关如何使用此标准(可能还有一些代码)实现算法的建议也将不胜感激。

4

3 回答 3

9

我对该网站了解不多,但像这样的系统通常以相同的方式工作。标准化一组加权值以产生单个可比较值。

定义您的规则列表,根据重要性对它们进行加权,然后将它们一起运行以获得最终值。

在这种情况下,它会是这样的。

  1. 总访问次数 = 10%
  2. 点赞总数 = 10%
  3. 访问次数/点赞数 = 40%(人气 = 点赞的访问者百分比)
  4. 过去 30 天的点赞数 = 20%(当前受欢迎程度)
  5. 作者评分 = 20%

现在我们需要标准化这些规则的值。根据您的数据是什么、数字的比例等,这对于每个规则都会有所不同,因此我们需要一个可行的值,比如 1 到 100 之间。

上述规范化示例:

  1. = 50,000 次访问中访问者的百分比(良好的访问次数)

    (vists / 50000 ) * 100

  2. = 10,000 个喜欢中的喜欢百分比(喜欢的好数量)

    (likes / 10000) * 100

  3. = 喜欢它的访问者的百分比

    (likes / vists) * 100

  4. = 1,000 次喜欢中过去 30 天的喜欢百分比(30 天内的喜欢数量不错)

    (likesIn30Days / 1000) * 100

  5. =作者的任意评级

确保所有这些都具有 100 的最大值(如果超过了,则将其降低)。然后我们需要根据它们的权重将所有这些组合起来:

人气=(1 * 0.1) + (2 * 0.1) + (3 * 0.4) + (4 * 0.2) + (5 * 0.2)

这一切都在我的脑海中,而且很粗糙。显然还有更有效的方法,因为您不需要在每个阶段都标准化为百分比,但我希望它可以帮助您了解要点。

更新

我真的没有任何参考资料或额外阅读。我从来没有真正将它作为一个更大的概念来使用,只是在小型实现中。

我认为您阅读的大部分内容将是一般的方法排名系统和理论。因为根据你的规则和数据格式,你的实现会有很大的不同。这似乎是一个巨大的概念,实际上它可能会归结为大约 10 行代码,不包括聚合数据。

于 2012-04-12T11:24:47.893 回答
6

您可能还想参考以下内容

于 2012-04-12T16:41:19.160 回答
0

500px 在他们的博客中解释了他们的(同时过时的)脉冲排名算法: https ://500px.com/blog/52/how-rating-works-and-why-there-sa-lot-more-to -a-rating-than-just-a-数字

非常有趣,并且与到目前为止 SO 上的解决方案所建议的不同。

于 2014-12-13T20:44:35.947 回答