【发布时间】:2012-09-29 23:43:52
【问题描述】:
我读到 Apriori 算法用于像一组元组一样从数据集中获取关联规则。它可以帮助我们找到最频繁的 1 项集、2 项集等。我的问题有点不同。我有一个数据集,它是一组元组,每个元组的大小都不同 - 如下:
(1, 234, 56, 32) (25、4575、575、464、234、32) . . .不同大小的元组
条目的域很大,这意味着我不能为每个元组拥有一个二进制向量,这会告诉我元组中是否存在项“x”。因此,我没有看到 Apriori 算法适合这里。
我的目标是回答以下问题:
- 给我 5 个数字的排名列表,大多数时间出现在 234 中
- 请给出最常一起出现的大小为“k”的前 5 个子集
要求:输出中数字的精确表示(不是近似的),数字的域可以认为是 1 到 10 亿。
如果没有适合这里的标准算法,我计划使用简单的计数方法。但是,如果你们知道一些可以帮助我的算法,请告诉我
【问题讨论】:
-
巨大有多大?我对 Apriori 算法不是很熟悉,但我读过它在数百万长度的特征向量上的使用。一个好的稀疏表示会有所帮助(您似乎已经拥有)。
-
您想要准确还是近似地表示您的数据?即,您愿意接受您的查询答案中的小错误吗?另外,您是否有任何关于数字如何关联的先验知识(不是特定数字,而是它们的分布结构)?
-
另外,并不是说您的表示等同于超图,您可能需要查看这些算法/实现。
-
主要问题是 - 组成元组的整数可以从 1 到巨大的数字,比如十亿 - 在这种情况下,我不能保留一个向量 (1,0,0,0,1,0 ,0,....),因为它会是矫枉过正。
标签: python data-mining graph-algorithm recommendation-engine apriori