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 的算法,在这样做的同时我遇到了一个问题,我生成了这样的模式(候选项集)在算法的每一步。
- 在每一步中,主列表中子列表的长度应该是
增加 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])。
解决这个问题的方法应该是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_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
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 的算法,在这样做的同时我遇到了一个问题,我生成了这样的模式(候选项集)在算法的每一步。
- 在每一步中,主列表中子列表的长度应该是 增加 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])。
解决这个问题的方法应该是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_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