如何在python中为Apriori算法组合列表的字符串元素?

Posted

技术标签:

【中文标题】如何在python中为Apriori算法组合列表的字符串元素?【英文标题】:How to combine string elements of a list for Apriori Algorithm in python? 【发布时间】:2021-04-04 05:09:17 【问题描述】:

所以我正在尝试编写 Apriori 算法。 我这里有

L1= ['apple', 'banana','orange','mango]

此列表已通过支持阈值,现在我必须将项目组合为另一个支持阈值,应该如下所示:

C2 = [['apple','banana'],['apple','orange'],['apple','mango']]

【问题讨论】:

您只是在寻找l = L1.pop(0)C2 = [[l, val] for val in L1] 之类的东西吗?或者更具体的东西? 没有。我正在寻找一个答案来组合每个元素,如 C2 = [['apple','banana'],['apple','orange'],['apple','mango']] 然后 C3 将是 [ [香蕉,橙子],[香蕉,芒果]] 我的示例完全像那样创建了 C2... 【参考方案1】:
L1= ['apple', 'banana','orange','mango']
C2 = [[L1[0], i] for i in L1[1:]]

结果C2:

[['apple', 'banana'], ['apple', 'orange'], ['apple', 'mango']]

要对列表中的所有项目运行此操作:

C2 = []
for i in L1:
    l = [[i, x] for x in L1 if not i == x]
    C2.extend(l)

【讨论】:

谢谢!但是,如果我将下一个元素与 [['banana','orange'],['banana','mango']] 等其他元素结合起来,我该怎么办?请注意,它会跳过 ['banana', 'apple'] 因为它与 ['apple', 'banana'] 相同 您应该使用 list.pop(0) 在 for i in range(len(L1)) 的循环中创建列表,这样您就不会重复。 当我使用 pop 时它返回一个空列表 @MessyMaze 在这种情况下,我们必须包含另一个 for 循环,我已经更新了答案。不要使用pop,因为它会从 L1 中删除项目。

以上是关于如何在python中为Apriori算法组合列表的字符串元素?的主要内容,如果未能解决你的问题,请参考以下文章

Apriori算法 - 没有得到python中的规则

Apriori算法

计算组合在 Dataframe 列中出现的频率 - Apriori 算法

使用Apriori算法进行关联分析(python2)

Python --深入浅出Apriori关联分析算法 Apriori关联规则实战

如何将数据框转换为Apriori算法的数据框。