总分排名算法

时间:2013-03-08 19:48:55

标签: algorithm ranking rating reddit scoring

背景;

我正在寻找一种根据听众反馈来计算一段音频得分的方法。每次用户收听该曲目时,他们必须投票,如果他们喜欢,简单的是或否。然后每个曲目都有一个分数,基于是和否的数量。

此外,我想在31天的过程中统一衰减每次投票的价值,因此在这段时间后,其值为0并且不会影响总体总分。

我发现了很多基于reddit和黑客新闻排名算法的讨论,但这些似乎会使总得分衰减,而不是个人投票本身。根据最初投票的时间,每次投票都有不同的衰减量。

任何人都可以帮助或推荐一些材料来查看吗?

由于

2 个答案:

答案 0 :(得分:1)

您可以将其建模为“是”= 1.0且“否”= 0.0。 然后,在投票后的第n天投票的值=(31-n)/ 31。如果n> 1,则进一步调节这个条件31,然后将其设置为0。 希望这能回答你的问题。

答案 1 :(得分:1)

你想要降级的加速度是多​​少?常见的是对数,因为它易于实现。得分为1表示喜欢,-1表示不喜欢。然后,当将喜欢/不喜欢加起来时,除以投票后的天数。在第1天,投票的绝对值为1.在第2天,它将是1/2。在第3天,它将值为1/3等等......在第31天,它将值为1/31(0.03)。

对数降级的问题是它很快就会下降。您可以使用许多其他方法,例如乘以log(11-d),其中第一天d = 1,第二天2,依此类推。它只允许11天的降解。 log(31-d)允许31天。您需要确保不要尝试执行log(0)或log(-x)。

整个模型的另一个问题是如何处理只有旧票的东西。如果什么东西只有喜欢,但所有的喜欢都是旧的怎么办?它会注册为不太喜欢,因为所有的喜欢都已降级。