我有一个电影列表,其中每个已知以下因素:
- 未来想看电影的人数
- 看过电影的人数
- 喜欢这部电影的人数
- 观看和不喜欢这部电影的人数
- 电影评论数
- 电影页面的页面点击数(直接或来自搜索引擎)
所以基于上述因素,我正在寻找一种方法来计算每部电影的受欢迎程度。在这种情况下,是否有任何已知的公式或算法来计算流行度值?首选算法是那些提供更有效方式来更新先前计算的每个项目的流行度值的算法。
我有一个电影列表,其中每个已知以下因素:
所以基于上述因素,我正在寻找一种方法来计算每部电影的受欢迎程度。在这种情况下,是否有任何已知的公式或算法来计算流行度值?首选算法是那些提供更有效方式来更新先前计算的每个项目的流行度值的算法。
基本上有无限的方法可以做你所追求的,这取决于每个因素的重要性。
首先,您需要对数据进行规范化。一种方法是假设每个特征是正态分布的,并找到每个特征的标准差和均值。(您的特征是观看电影的人数、喜欢电影的人数……)。
一旦有了 sd(标准差)和 mu(均值),您就可以轻松地将每部电影的特征转换为使用norm = (value-mu)/sd
.
sum(x_i) / n
sd = sqrt(Sum((x_i - mu)^2) / (n-1))
将数据标准化后,您可以简单地将评级定义为加权总和,其中每个特征都会根据其重要性得到提升:
a1 * #watched + a2 * #liked + ....
如果您不知道权重是多少,但愿意手动为一组电影评分,您可以使用监督学习使用线性回归为您找到 (a1,a2,...,an) 。
没有正确的答案,但我认为我们应该尝试将其建模为尽可能接近现实。让我们考虑以下几点:
P1=Proportion of people who watched and enjoyed it
P2=Proportion of people who disliked the movie
P3=Proportion of people who watched and would like to see again
P4=People who will watch it later but haven't seen it yet
评论的数量根本无法说明一部电影有多好,尽管它可以说明它有多受欢迎。当然。如果可能的话,您可以利用正面和负面评论的数量来区分(可能通过赞成票和反对票),或者您可以只使用评论的数量(C)。
页面点击数通常应该很好地表明电影的受欢迎程度,所以我们应该在我们的算法中给予它一个很好的权重。此外,我们应该给最近的页面点击量比一年前的页面点击量更大的权重。所以试试并保留过去三天 (N3)、上周 (N7)、上个月 (N30) 和去年 (N365) 以及其他所有内容 (Nrest) 的页面点击次数。
你提出了一个使用我提到的因素的算法。[尝试使用加权平均和霍纳规则的变体进行快速更新。祝你好运。]