背景:这是一个网站,是不同日期添加的产品集合。用户可以喜欢/投票产品。
我正在实施的功能:用户可以通过喜欢/投票订购产品。
产品A:它有50个喜欢,它刚刚被添加到系统中 40天。
产品B:它有40个喜欢,它刚刚被添加到系统中 20天。
如果我通过'喜欢'订购产品A将会放置1.但我需要产品B作为第一名,因为我可以说产品B比产品A更好,因为它只有20天才能获得40个。
我的解决方案:所以我按平均每天订购产品。
我的解决方案中的问题:当我使用数千种产品进行测试时,我了解到对旧产品不公平。有一些原因,比如过去的交通很少等等。
那么我可以添加什么类型的东西来提高“按喜好排序”功能的准确性呢?
答案 0 :(得分:2)
我认为时间的对数增加可能是一种有效的解决方案。
您可以将平均值计算为likes / log(days)
。
您可以通过更改对数的基数来调整公式。例如,对于基数10,您将拥有:
产品A = 50 / log(40)= 0.336
产品B = 40 / log(20)= 0.969
通过增加基数,可以增加公式中的重要性。减少基数,增加公式中的时间重要性,您应该能够根据需要进行调整。
编辑:使用对数背后的想法是,它是一个数学函数,随着他的论证变得越大,它越慢越慢。所以log(10)和log(20)之间的差异远大于log(100)和log(110)之间的差异,即使10-20和100-110之间的差异是相同的。