我必须按应用下载次数对“最流行的应用 RSS”进行排序。这是问题所在:
假设有 1,000 个应用。
RSS 数据列出了每个应用类别的前 100 个应用。
RSS 数据还提供前 100 个应用列表,不分类别。
RSS 按每个应用的下载次数排序,但确切的下载次数未知。
每个应用程序都有两个已知属性:类别及其在 RSS 排名中的位置。
现在我想按估计的下载次数对所有 1,000 个应用程序进行排序。
排序不需要非常准确,统计上最可能的就可以了。
我怎样才能实现这个排序算法? TIA。
最佳答案
你可以这样处理:(我假设每个应用只属于一个类别)
假设您对每个类别 C1 ..C10 有以下排名
C1 C2 ... C10
app1-1 app2-1
app1-2 &pp2-2
.. ...
app1-100 app2-100 app10-100
和
总的 100 个顶级应用类别(例如):
C app1-1 app1-2 app2 -1 ... app2-10
现在使用这 2 个表,首先你需要按照 app1-1 到 app10-1 在列表 C 中出现的相同顺序对 C1 到 C10 进行排序,这样你就“知道”(更像是猜测)类别是什么在排名方面更重要。
然后使用这些信息对其余的进行排序。
现在我将使用一个更简单的示例来展示如何对其余元素进行排序。
让我们以 3 个类别和 12 个应用为例。
C1 C2 C3
app1 app21 app31
app2 app22 app32
app3 app23 app33
app4 app24 app34
和C = app1 app2 app21 app31
1.首先在表格中标记C中的所有元素:
app1 app21 ->app31
| /
app2 app22 app32
app3 app23 app33
app4 app24 app34
2.第二,对剩余元素进行排序
由于您没有更多信息,一个很好的近似是从左到右查看每一行(从排名较高的顶部列表到较小的排名顶部列表),它给出:
app3 app22 app32 app4 app23 app33 app24 app34
那么整体分类将是:
app1 app2 app21 app31 app3 app22 app32 app4 app23 app33 app24 app34
我希望这个例子能阐明我的想法并有所帮助。
我认为这种方法使用了您在 C1 ...C10 和 C 中拥有的所有信息。
关于algorithm - 计算排名数据的估计数学期望?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7202998/