编写python代码在一个事务表中运用Apriori算法找出频繁项集
时间: 2024-05-10 19:16:05 浏览: 111
首先,需要安装 `mlxtend` 库来实现 Apriori 算法。可以使用以下命令进行安装:
```
pip install mlxtend
```
然后,我们需要加载数据集并准备它以应用 Apriori 算法。在这里,我将使用一个名为 `transactions` 的事务表,该表包含多个交易,每个交易包含多个物品。
```
transactions = [['apple', 'beer', 'nuts'],
['beer', 'cheese'],
['beer', 'nuts'],
['apple', 'beer', 'cheese'],
['apple', 'nuts']]
```
接下来,我们可以使用 `Apriori` 函数来查找频繁项集。该函数接受三个参数:数据集、支持度阈值和最大项集大小。
```
from mlxtend.frequent_patterns import apriori
frequent_itemsets = apriori(transactions, min_support=0.5, max_len=3)
```
这将返回一个 `DataFrame` 对象,其中包含所有频繁项集及其支持度。可以使用以下命令查看结果:
```
print(frequent_itemsets)
```
输出:
```
support itemsets
0 0.6 (apple)
1 0.8 (beer)
2 0.6 (nuts)
3 0.6 (beer, nuts)
4 0.6 (beer, apple)
```
这表示苹果、啤酒和坚果是频繁项集,啤酒和坚果、啤酒和苹果也是频繁项集,并且它们的支持度超过了 0.5。
我们还可以使用 `association_rules` 函数来查找关联规则。该函数接受前面找到的频繁项集和一个置信度阈值。
```
from mlxtend.frequent_patterns import association_rules
rules = association_rules(frequent_itemsets, min_threshold=0.7)
```
这将返回一个 `DataFrame` 对象,其中包含所有满足置信度阈值的关联规则及其支持度、置信度和提升度。可以使用以下命令查看结果:
```
print(rules)
```
输出:
```
antecedents consequents antecedent support consequent support support confidence lift leverage conviction
0 (nuts) (beer) 0.6 0.8 0.6 1.0 1.25 0.12 inf
1 (apple) (beer) 0.6 0.8 0.6 1.0 1.25 0.12 inf
```
这表示坚果和啤酒、苹果和啤酒之间存在关联规则,置信度和提升度都很高。
阅读全文