我最近想知道http://500px.com如何计算他们的“Pulse”评级。“Pulse”是根据照片的受欢迎程度从 1..100 开始的分数。
我认为它可能会使用以下一些标准:
- 点赞数
- “收藏夹”数量
- 评论数
- 总浏览
- 可能是照片上传后的时间
- 可能还有其他一些不明显的标准,例如用户的关注者数量、用户排名、相机型号或类似的
我将如何实现这样的某种算法?
任何有关如何使用此标准(可能还有一些代码)实现算法的建议也将不胜感激。
我最近想知道http://500px.com如何计算他们的“Pulse”评级。“Pulse”是根据照片的受欢迎程度从 1..100 开始的分数。
我认为它可能会使用以下一些标准:
我将如何实现这样的某种算法?
任何有关如何使用此标准(可能还有一些代码)实现算法的建议也将不胜感激。
我对该网站了解不多,但像这样的系统通常以相同的方式工作。标准化一组加权值以产生单个可比较值。
定义您的规则列表,根据重要性对它们进行加权,然后将它们一起运行以获得最终值。
在这种情况下,它会是这样的。
现在我们需要标准化这些规则的值。根据您的数据是什么、数字的比例等,这对于每个规则都会有所不同,因此我们需要一个可行的值,比如 1 到 100 之间。
上述规范化示例:
= 50,000 次访问中访问者的百分比(良好的访问次数)
(vists / 50000 ) * 100
= 10,000 个喜欢中的喜欢百分比(喜欢的好数量)
(likes / 10000) * 100
= 喜欢它的访问者的百分比
(likes / vists) * 100
= 1,000 次喜欢中过去 30 天的喜欢百分比(30 天内的喜欢数量不错)
(likesIn30Days / 1000) * 100
=作者的任意评级
确保所有这些都具有 100 的最大值(如果超过了,则将其降低)。然后我们需要根据它们的权重将所有这些组合起来:
人气=(1 * 0.1) + (2 * 0.1) + (3 * 0.4) + (4 * 0.2) + (5 * 0.2)
这一切都在我的脑海中,而且很粗糙。显然还有更有效的方法,因为您不需要在每个阶段都标准化为百分比,但我希望它可以帮助您了解要点。
更新
我真的没有任何参考资料或额外阅读。我从来没有真正将它作为一个更大的概念来使用,只是在小型实现中。
我认为您阅读的大部分内容将是一般的方法排名系统和理论。因为根据你的规则和数据格式,你的实现会有很大的不同。这似乎是一个巨大的概念,实际上它可能会归结为大约 10 行代码,不包括聚合数据。
您可能还想参考以下内容
500px 在他们的博客中解释了他们的(同时过时的)脉冲排名算法: https ://500px.com/blog/52/how-rating-works-and-why-there-sa-lot-more-to -a-rating-than-just-a-数字
非常有趣,并且与到目前为止 SO 上的解决方案所建议的不同。