apriori python
时间: 2023-09-04 14:16:07 浏览: 150
Apriori算法是一种经典的关联规则挖掘算法,用于发现数据集中项之间的关联关系。在python中,可以使用mlxtend库中的apriori函数实现Apriori算法。下面是一个简单的示例代码:
```
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
# 数据集
dataset = [['鸡蛋', '牛奶', '面包'],
['鸡蛋', '面包', '可乐', '尿布'],
['牛奶', '可乐', '尿布'],
['鸡蛋', '牛奶', '面包', '可乐']]
# 将数据集转化为Boolean格式
te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)
# 应用Apriori算法,发现频繁项集
freq_itemsets = apriori(df, min_support=0.5, use_colnames=True)
print(freq_itemsets)
```
在这个示例中,我们使用了一个包含4个交易的数据集。我们首先将数据集转化为Boolean格式,然后使用apriori函数找出所有出现频率大于50%的项集。这个示例中的输出结果如下:
```
support itemsets
0 0.75 (可乐)
1 0.50 (牛奶)
2 0.75 (面包)
3 0.50 (鸡蛋)
4 0.50 (可乐, 尿布)
5 0.50 (可乐, 面包)
6 0.50 (牛奶, 可乐)
7 0.50 (鸡蛋, 牛奶)
8 0.50 (鸡蛋, 面包)
9 0.50 (可乐, 面包, 尿布)
10 0.50 (牛奶, 可乐, 尿布)
11 0.50 (鸡蛋, 可乐, 面包)
12 0.50 (鸡蛋, 牛奶, 可乐)
13 0.50 (鸡蛋, 可乐, 面包, 尿布)
14 0.50 (牛奶, 可乐, 面包, 尿布)
15 0.50 (鸡蛋, 牛奶, 可乐, 面包)
16 0.50 (鸡蛋, 牛奶, 可乐, 尿布)
17 0.50 (鸡蛋, 面包, 尿布, 可乐)
```
输出结果中,每一行表示一个频繁项集,support列表示该项集在数据集中出现的比例,itemsets列则表示该项集中包含的所有项。在这个示例中,我们可以看到可乐和面包的组合最为流行,出现在了10个交易中。
阅读全文