我正在开发一个用户评价内容(1-5星)的网站。我需要衡量内容的受欢迎程度(也称为重要性/热度/兴趣)。我的第一个想法是添加内容的用户评分:
人气= SUM(评分 - 2.5)
如果两个用户给它5星,一个给它2星,它的流行度为2.5 + 2.5-0.5 = 4.5。然后,该值会受到抑制,具体取决于内容的年龄。我希望它尽可能准确,所以我想知道这是否“足够好”或者是否有更好的方法,例如分析评级的分布,或者我是否必须引入更多指标(观点,评论,分享,内容花费的时间等)。
答案 0 :(得分:2)
这是一个经典问题。您的方法很好,但它是否考虑了分数的可靠性?你提示那不是。
帖子获得的评分越多,评分就越可靠地告诉您价值。
另一方面,单个不良评级的信任度较低。
能够考虑数据集的可靠性,并通过计算它告诉我们的内容,统计数据中的贝叶斯是关于什么的。您需要贝叶斯平均值:请参阅这些文章here和excellent set of resources here。
由于这是一个堆栈溢出问题,here是关于如何计算平均值的许多规范SO问题之一。
如果你想要发现这个古老金块的历史和哲学层面,那么Here是一本好书。
答案 1 :(得分:1)
首先,受欢迎程度并不是一个定义明确的概念。人们可能会认为它与收视率成正比,但我也可以说“电影A很受欢迎,因为每个人都看过它,但它的质量不如预期好。”这样,有很多评级,但总体而言评级并不太好。
以天真的方式,您可以衡量每部电影的全球均值的平均偏差。
以更复杂的方式,您还应该考虑有多少评级,这很难制定。
通常,如果您正在构建推荐系统,您将使用项目相似性或用户相似性等。这是因为它们是相对的。默认情况下的受欢迎程度应该是有限的绝对比例,这很难为推荐制定权利。
如果您要使用推荐系统,我建议您阅读以下文章: