Apriori算法对products数据集前一百个商品挖掘频繁集输出强关联代码
时间: 2024-03-21 15:38:26 浏览: 63
论文研究-基于双阈值Apriori算法和非频繁项集的关联规则挖掘方法.pdf
好的,以下是使用Python实现Apriori算法对products数据集前100个商品进行频繁集挖掘和关联规则生成的示例代码:
```python
# 导入Apriori算法库
from efficient_apriori import apriori
# 读入数据集
with open('products.csv', 'r') as f:
data = [line.strip().split(',') for line in f.readlines()]
# 根据购买次数对商品进行排序,选取前100个商品作为初始候选集
sorted_data = sorted(data[1:], key=lambda x: int(x[1]), reverse=True)
top_100_items = [d[0] for d in sorted_data[:100]]
# 设置最小支持度阈值和最小置信度阈值
min_support = 0.05
min_confidence = 0.5
# 使用Apriori算法计算频繁集和关联规则
itemsets, rules = apriori(data, min_support=min_support, min_confidence=min_confidence)
# 筛选出包含前100个商品的频繁集和关联规则
top_100_itemsets = {}
for itemset in itemsets:
if set(itemset).issubset(set(top_100_items)):
top_100_itemsets[itemset] = itemsets[itemset]
top_100_rules = []
for rule in rules:
if set(rule.lhs).issubset(set(top_100_items)) and set(rule.rhs).issubset(set(top_100_items)):
top_100_rules.append(rule)
# 输出频繁集和强关联规则
print('频繁集:')
for itemset in top_100_itemsets:
print('{}: {:.2%}'.format(','.join(itemset), top_100_itemsets[itemset]))
print('\n强关联规则:')
for rule in top_100_rules:
print('{} => {}: {:.2%}, {:.2%}'.format(','.join(rule.lhs), ','.join(rule.rhs), rule.support, rule.confidence))
```
需要注意的是,上述代码中的数据集文件名为`products.csv`,其中第一列为商品名称,第二列为购买次数。同时,Apriori算法库`efficient_apriori`可以使用pip进行安装。
阅读全文