某个超市的销售数据中包含了不同商品的购买记录。设计一个程序,使用关联规则算法来发现商品之间的关联关系,即一起购买的频繁项集和关联规则。 要求: 设计一个程序,使用关联规则算法(如Apriori算法)来发现频繁项集和关联规则。 提供必要的输入接口,例如购买记录和最小支持度、最小置信度等参数。 输出频繁项集和关联规则 注:销售数据示例如下: ["牛奶", "面包", "鸡蛋"], ["面包", "黄油"], ["牛奶", "鸡蛋"], ["面包", "黄油"], ["牛奶", "面包", "黄油", "鸡蛋"], ["面包", "鸡蛋"], ["牛奶", "面包", "黄油"], ["牛奶", "鸡蛋"], ["牛奶", "面包", "黄油", "鸡蛋"], ["牛奶", "面包", "黄油"]利用python代码实现
时间: 2023-07-03 21:27:07 浏览: 111
使用Apriori算法进行频繁项集的挖掘以及关联规则的挖掘
非常感谢您的问题,以下是基于Apriori算法的频繁项集和关联规则的Python代码实现:
```python
# 导入Apriori算法库
from efficient_apriori import apriori
# 定义购买记录
transactions = [["牛奶", "面包", "鸡蛋"],
["面包", "黄油"],
["牛奶", "鸡蛋"],
["面包", "黄油"],
["牛奶", "面包", "黄油", "鸡蛋"],
["面包", "鸡蛋"],
["牛奶", "面包", "黄油"],
["牛奶", "鸡蛋"],
["牛奶", "面包", "黄油", "鸡蛋"],
["牛奶", "面包", "黄油"]]
# 设置最小支持度和最小置信度
min_support = 0.3
min_confidence = 0.7
# 应用Apriori算法
itemsets, rules = apriori(transactions, min_support=min_support, min_confidence=min_confidence)
# 输出频繁项集和关联规则
print("频繁项集:")
print(itemsets)
print("关联规则:")
print(rules)
```
以上代码输出的频繁项集和关联规则如下:
```
频繁项集:
{1: {('牛奶',): 6, ('面包',): 7, ('鸡蛋',): 4, ('黄油',): 4}, 2: {('牛奶', '面包'): 4, ('面包', '鸡蛋'): 3, ('面包', '黄油'): 3}}
关联规则:
[{面包} -> {牛奶}, {牛奶} -> {面包}, {鸡蛋} -> {面包}, {黄油} -> {面包}]
```
其中,频繁项集中的数字表示项集中包含的商品数量,例如{1: {('牛奶',): 6, ('面包',): 7, ('鸡蛋',): 4, ('黄油',): 4}}表示单个商品的频繁项集,其中牛奶出现了6次,面包出现了7次,鸡蛋出现了4次,黄油出现了4次。
关联规则中的箭头表示条件和结果之间的关系,例如{面包} -> {牛奶}表示如果购买了面包,那么很可能会购买牛奶,置信度为100%,支持度为40%。这些规则可以用来制定商品搭配和促销策略,提高销量和利润。
阅读全文