Python: 为相对支持先验算法生成候选项集

Python: Generating candidate itemsets for Relative Support Apriori Algorithm

Please note: Title of this question might be ambiguous so I request other users to please edit it. I was not able to come up with a suitable title which fits this problem.

上面讨论的问题是RSAA(Relative Support Apriori Algorithm)算法的一部分,这里是研究论文link:http://dl.acm.org/citation.cfm?id=937663

问题:我正在使用 python 实现类似 apriori 的算法,在这样做的同时我遇到了一个问题,我生成了这样的模式(候选项集)在算法的每一步。

示例如下:

输入:

input = [[5, 3], [5, 4], [5, 6], [7, 6]]

输出应该是:

output = [[5,3,4], [5,3,6], [4,5,6], [5,6,7]]

输出列表 (^) 的每个子列表必须只有 3 个项目(例如:[5,3,4])。

解决这个问题的方法应该是generic,因为在下一步:

输入:

input = [[5,3,4], [5,3,6], [4,5,6], [5,6,7]]

输出:

output = [[5,3,4,6], [4,5,6,7]]

输出列表 (^) 的每个子列表必须只有 4 个项目。

( [5,3,4,6] 由 [5,3,4] 和 [5,3,6] 连接而成。 我们不能连接 [5,3,4] 和 [5,6,7],因为这样做会创建 [5,3,4,6,7],其长度 = 5 )

我认为您的要求包含在 apriori 中。 我写了一篇关于算法的博客,可惜是中文的。 这里是linkhttp://www.zealseeker.com/archives/apriori-algorithm-python/
这里是snippets(也有中文主持)

has_infrequent_subsetapriori_gen可能就是你想要的两个功能。

如果代码对您有用,请评论我的回答,我很乐意继续为您提供帮助。


更新

python.

中两个序列的交集和差集很容易得到
a = set([5, 6])
b = set([6, 7])
c = a & b # get the itersection
if len(c) == len(a) - 1: 
  return a | b # their union