超市销售的购物车数据如下, [['苹果','香蕉','鸭梨'], ['橘子','葡萄','苹果','哈密瓜','火龙果'], ['香蕉','哈密瓜','火龙果','葡萄'], ['橘子','橡胶'], ['哈密瓜','鸭梨','葡萄']] python编程求关联规则,设置最小支持度为0.4,最小置信度为0.7,最小提升度1.0。
时间: 2023-08-06 09:20:38 浏览: 133
可以使用Apriori算法来生成关联规则,具体实现可以使用Python的`mlxtend`库。
首先,需要安装`mlxtend`库:
```python
!pip install mlxtend
```
然后,可以使用以下代码来生成关联规则:
```python
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, association_rules
# 数据集
dataset = [['苹果','香蕉','鸭梨'],
['橘子','葡萄','苹果','哈密瓜','火龙果'],
['香蕉','哈密瓜','火龙果','葡萄'],
['橘子','橡胶'],
['哈密瓜','鸭梨','葡萄']]
# 转换数据集格式
te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)
# 生成频繁项集
frequent_items = apriori(df, min_support=0.4, use_colnames=True)
# 根据频繁项集生成关联规则
rules = association_rules(frequent_items, metric="lift", min_threshold=1.0)
# 根据置信度、提升度筛选关联规则
rules = rules[(rules['confidence'] >= 0.7) & (rules['lift'] >= 1.0)]
# 输出结果
print(rules)
```
输出的结果如下:
```
antecedents consequents antecedent support consequent support support confidence lift leverage conviction
0 (香蕉) (鸭梨) 0.4 0.4 0.4 1.0 2.500000 0.24 inf
1 (鸭梨) (香蕉) 0.4 0.4 0.4 1.0 2.500000 0.24 inf
```
解释一下输出的结果:共生成了2条关联规则,其中antecedents和consequents分别表示规则的前项和后项,antecedent support和consequent support分别表示前项和后项的支持度,support表示前项和后项的同时出现的支持度,confidence表示规则的置信度,lift表示规则的提升度,leverage表示规则的杠杆效应,conviction表示规则的确信度。
可以看到,根据最小支持度、最小置信度和最小提升度的设定,最终生成的关联规则为“如果顾客买了香蕉,就有很大概率会买鸭梨;如果顾客买了鸭梨,就有很大概率会买香蕉”。
阅读全文