【发布时间】:2017-08-10 19:48:44
【问题描述】:
请注意:这个问题的标题可能不明确,所以我要求 其他用户请编辑它。我无法想出适合这个问题的合适标题。
上面讨论的问题是一种叫做RSAA(Relative Support Apriori Algorithm)的算法的一部分,这里是研究论文链接:http://dl.acm.org/citation.cfm?id=937663
问题:我正在使用 python 实现诸如 apriori 之类的算法,在这样做的同时,我遇到了一个问题,即我在算法的每一步都生成了类似的模式(候选项集)。
- 在每个步骤中,主列表中子列表的长度应为 增加 1。
- 一个步骤的输出将成为下一步的输入。
- 主列表中的子列表可以以任意顺序出现,其中的数字 子列表可以按任何顺序出现。
示例如下:
输入:
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 的 [5,3,4,6,7] )
【问题讨论】:
-
我看到了一些要求,但没有实际代码。您是否尝试过自己解决这个问题?后面的列表与前面的列表有什么关系?如果你能把它写下来,那么你应该能够编码。
-
我尝试使用 itertools.combinations() 解决此问题,但无法提出解决方案。
标签: python algorithm list data-mining apriori