Algorithm 模拟亚马逊畅销书

Algorithm 模拟亚马逊畅销书,algorithm,Algorithm,我刚刚浏览了amazon.com,一件有趣的事情吸引了我的眼球,那就是他们是如何计算书籍中的畅销书的 我正在考虑编写一个示例程序来计算这个。我在想,假设我计算的是本月的畅销书,而不仅仅是对每本书的销售数量求和,然后显示前十名。还好吧,还是我遗漏了什么 编辑 还有一件有趣的事情可能发生:假设一本拥有id1的书在第一天就卖出了10本,但在那之后它还没有卖出,但是拥有id2的书经常以1或2本的价格卖出。那么它将如何影响畅销书的计算。谢谢。听起来不错。这取决于您想要如何准确地定义它 “畅销书”是指售出的

我刚刚浏览了amazon.com,一件有趣的事情吸引了我的眼球,那就是他们是如何计算书籍中的畅销书的

我正在考虑编写一个示例程序来计算这个。我在想,假设我计算的是本月的畅销书,而不仅仅是对每本书的销售数量求和,然后显示前十名。还好吧,还是我遗漏了什么

编辑


还有一件有趣的事情可能发生:假设一本拥有
id1
的书在第一天就卖出了10本,但在那之后它还没有卖出,但是拥有
id2
的书经常以1或2本的价格卖出。那么它将如何影响畅销书的计算。谢谢。

听起来不错。这取决于您想要如何准确地定义它

“畅销书”是指售出的单位数量

另一种方法是,如果你不想将其固定为一个月,则使用一些分布函数(如平方衰减,t^2)并添加由分布函数加权的计数。 这样,即使你没有一个固定的时间窗口,你也可以看到新来者和旧书。您的函数应该如下所示:

for a_book in books:
    score = 0
    for a_sale in sales[a_book]:
        score += 1 / (days(now() - a_sale.time()) ** 2)  # pow 2

我想你明白了。您可以尝试不同的函数,如exp(days)或不同的幂。尝试一下,看看什么对你有意义。

有趣的是,你能详细说明一下吗?请看我对这个问题的最新编辑,我认为你的方向是正确的。谢谢。这是什么?@在python中尝试是power 2。剩下的只是评论。如果一本书在15天之前售出,但在15天之后就再也没有售出,它将如何衰减分数。@尝试重新计算分数。由于
now()
的更改,它将得到较低的分数。