请注意:此问题的标题可能不明确,因此我请求其他用户对其进行编辑。我无法想出一个适合这个问题的合适的标题。
上面讨论的问题是称为RSAA(相对支持先验算法)的算法的一部分,这是研究论文链接: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])。
解决这个问题的方法应该是通用的,因为在下一步中:
输入:
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 中。我写了一篇关于算法的博客,可惜是中文的。这是链接http://www.zealseeker.com/archives/apriori-algorithm-python/
这是片段(也有中文版)
has_infrequent_subset
并且apriori_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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句