跨多个大型项目集的高效近似项

时间:2017-08-15 03:43:21

标签: algorithm statistics set frequency frequency-analysis

我想知道有一种有效的算法可以在许多大型项目集中获得近似最常见的k项。

  

例如,我们有99套:

     

S1 =(i1,i2,i3,i5,i7,i9,...,i230231)

     

S2 =(i2,i4,i7,i11,i17,i21,...,i230231)

     

S3 =(i1,i5,i9,i12,i13,i55,...,i334234)

     

...

     

S99 =(i2,i3,i4,i6,i22,i32,...,i96574)

     

想要找到最常用的物品。例如i2,i1,i3,i7

     

一个潜在的假设是,我们关心的项目(希望被包括在前k中)将在所有集合中具有至少10%的频率,因此如果有100集,我们关心的项目应该至少出现在10集(希望它可以使问题更容易)。

一个简单的解决方案是构建一个字典,其中项目作为键,频率作为值,并迭代每个项目集并增加每个项目的频率计数。问题是根据集合的大小来计算线性运行时间:Σ| Si |。我的项目集非常大。

我试图通过随机抽样对来找到近似值,并且对于每对集合我做出它们的交集,基于这样的想法:如果项目足够频繁,它应该具有跨越多个交叉点的特定频率。然而它并不快(如果不是更慢)。

非常感谢任何想要热衷于阅读研究的想法

0 个答案:

没有答案