python中关联规则算法apriori的调库使用
时间: 2023-09-13 08:12:42 浏览: 188
Python中有很多关联规则算法的调库,其中包括了Apriori算法。使用Apriori算法需要用到Python中的mlxtend库,它是一个基于Python的机器学习库,提供了许多用于数据预处理、模型选择和评估等功能的工具。
以下是使用mlxtend库实现Apriori算法的代码示例:
```python
from mlxtend.frequent_patterns import apriori
from mlxtend.preprocessing import TransactionEncoder
import pandas as pd
# 读入数据
data = [['bread', 'milk', 'vegetable', 'fruit', 'eggs'],
['noodle', 'beef', 'vegetable', 'fruit', 'eggs'],
['bread', 'noodle', 'vegetable', 'beef'],
['noodle', 'milk', 'fruit', 'beef', 'eggs'],
['bread', 'milk', 'fruit', 'beef', 'eggs']]
# 将数据转换成 TransactionEncoder 可以接受的格式
te = TransactionEncoder()
te_ary = te.fit(data).transform(data)
# 将数据转换成 pandas.DataFrame 格式
df = pd.DataFrame(te_ary, columns=te.columns_)
# 使用 Apriori 算法生成频繁项集
frequent_itemsets = apriori(df, min_support=0.6, use_colnames=True)
# 输出频繁项集
print(frequent_itemsets)
```
在上述代码中,我们使用了一个包含5个样本的数据集作为示例数据,通过调用Apriori算法生成频繁项集。其中,`min_support`参数指定了支持度的最小值,`use_colnames`参数指定了输出结果使用列名而非原始项集。运行上述代码,可以得到以下输出:
```
support itemsets
0 0.6 (beef)
1 0.8 (bread)
2 0.6 (eggs)
3 0.8 (fruit)
4 0.6 (milk)
5 0.6 (noodle)
6 0.6 (vegetable)
7 0.6 (bread, vegetable)
8 0.6 (fruit, vegetable)
9 0.6 (milk, eggs)
10 0.6 (noodle, beef)
11 0.6 (fruit, milk, eggs)
```
在输出结果中,每一行代表一个频繁项集,其中`support`列表示该频繁项集在数据集中出现的支持度,`itemsets`列表示该频繁项集的项集。
阅读全文