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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将数据框转换为Apriori算法的数据框。相关的知识,希望对你有一定的参考价值。

我有一个数据框是这样的 enter image description here

我的目标是找到什么产品在一起卖的最多。因此,我决定使用Apriori算法,所以我试图将一个数据框转换为这样的东西。enter image description here

最好的方法是什么?

如果有更好的方法找到我想找的东西,如果你能给我建议另一种方法,我将感激不尽。

答案

只要按ID分组,得到一个产品列表,将这些产品的数组输入Apriori。

from apyori import apriori

df = pd.DataFrame('ID':[1,2,1,2,3,2], 'product':['ball','bat','bat','car','baloon','ball'])

list(apriori(df.groupby('ID')['product'].apply(list).values))

輸出結果

[RelationRecord(items=frozenset('ball'), support=0.6666666666666666, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset('ball'), confidence=0.6666666666666666, lift=1.0)]),
 RelationRecord(items=frozenset('baloon'), support=0.3333333333333333, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset('baloon'), confidence=0.3333333333333333, lift=1.0)]),
 RelationRecord(items=frozenset('bat'), support=0.6666666666666666, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset('bat'), confidence=0.6666666666666666, lift=1.0)]),
 RelationRecord(items=frozenset('car'), support=0.3333333333333333, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset('car'), confidence=0.3333333333333333, lift=1.0)]),
 RelationRecord(items=frozenset('bat', 'ball'), support=0.6666666666666666, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset('bat', 'ball'), confidence=0.6666666666666666, lift=1.0), OrderedStatistic(items_base=frozenset('ball'), items_add=frozenset('bat'), confidence=1.0, lift=1.5), OrderedStatistic(items_base=frozenset('bat'), items_add=frozenset('ball'), confidence=1.0, lift=1.5)]),
 RelationRecord(items=frozenset('ball', 'car'), support=0.3333333333333333, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset('ball', 'car'), confidence=0.3333333333333333, lift=1.0), OrderedStatistic(items_base=frozenset('ball'), items_add=frozenset('car'), confidence=0.5, lift=1.5), OrderedStatistic(items_base=frozenset('car'), items_add=frozenset('ball'), confidence=1.0, lift=1.5)]),
 RelationRecord(items=frozenset('bat', 'car'), support=0.3333333333333333, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset('bat', 'car'), confidence=0.3333333333333333, lift=1.0), OrderedStatistic(items_base=frozenset('bat'), items_add=frozenset('car'), confidence=0.5, lift=1.5), OrderedStatistic(items_base=frozenset('car'), items_add=frozenset('bat'), confidence=1.0, lift=1.5)]),
 RelationRecord(items=frozenset('bat', 'ball', 'car'), support=0.3333333333333333, ordered_statistics=[OrderedStatistic(items_base=frozenset(), items_add=frozenset('bat', 'ball', 'car'), confidence=0.3333333333333333, lift=1.0), OrderedStatistic(items_base=frozenset('ball'), items_add=frozenset('bat', 'car'), confidence=0.5, lift=1.5), OrderedStatistic(items_base=frozenset('bat'), items_add=frozenset('ball', 'car'), confidence=0.5, lift=1.5), OrderedStatistic(items_base=frozenset('car'), items_add=frozenset('bat', 'ball'), confidence=1.0, lift=1.5), OrderedStatistic(items_base=frozenset('bat', 'ball'), items_add=frozenset('car'), confidence=0.5, lift=1.5), OrderedStatistic(items_base=frozenset('ball', 'car'), items_add=frozenset('bat'), confidence=1.0, lift=1.5), OrderedStatistic(items_base=frozenset('bat', 'car'), items_add=frozenset('ball'), confidence=1.0, lift=1.5)])]

以上是关于如何将数据框转换为Apriori算法的数据框。的主要内容,如果未能解决你的问题,请参考以下文章

Pyspark:在机器学习算法中使用数据框

如何将熊猫数据框转换为多索引数据框

使用 pyspark 将 Spark 数据框中的列转换为数组 [重复]

PySpark:Spark数据框-将ImageSchema列转换为nDArray作为新列

如何将数据框转换为xts

如何将 json 转换为 pandas 数据框?