import pandas as pd
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori, association_rules
# 1表示该商品在交易中被购买,0表示没有被购买
data = [
['牛奶', '面包', '黄油'],
['可乐', '面包', '牛奶', '鸡蛋'],
['牛奶', '面包', '黄油', '鸡蛋'],
['可乐', '面包', '牛奶'],
['面包', '牛奶', '鸡蛋'],
['可乐', '面包', '黄油', '牛奶', '鸡蛋']
]
# 将数据集转换为one-hot编码形式
commodity_code= TransactionEncoder()
commodity_ary = commodity_code.fit(data).transform(data)
df = pd.DataFrame(commodity_ary, columns=commodity_code.columns_)
print(df)
# 找出频繁项集
frequent_itemsets = apriori(df, min_support=0.5, use_colnames=True)
print(frequent_itemsets)
# 使用关联规则来找出强关联规则
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7)
print(rules[['antecedents', 'consequents', 'support', 'confidence']])
# rules.to_csv('apriori_Market_basket.csv')
“”
可乐 牛奶 面包 鸡蛋 黄油
0 False True True False True
1 True True True True False
2 False True True True True
3 True True True False False
4 False True True True False
5 True True True True True
support itemsets
0 0.500000 (可乐)
1 1.000000 (牛奶)
2 1.000000 (面包)
3 0.666667 (鸡蛋)
4 0.500000 (黄油)
5 0.500000 (可乐, 牛奶)
6 0.500000 (面包, 可乐)
7 1.000000 (面包, 牛奶)
8 0.666667 (鸡蛋, 牛奶)
9 0.500000 (黄油, 牛奶)
10 0.666667 (面包, 鸡蛋)
11 0.500000 (面包, 黄油)
12 0.500000 (面包, 可乐, 牛奶)
13 0.666667 (面包, 鸡蛋, 牛奶)
14 0.500000 (面包, 黄油, 牛奶)
antecedents consequents support confidence
0 (可乐) (牛奶) 0.500000 1.0
1 (可乐) (面包) 0.500000 1.0
2 (面包) (牛奶) 1.000000 1.0
3 (牛奶) (面包) 1.000000 1.0
4 (鸡蛋) (牛奶) 0.666667 1.0
5 (黄油) (牛奶) 0.500000 1.0
6 (鸡蛋) (面包) 0.666667 1.0
7 (黄油) (面包) 0.500000 1.0
8 (面包, 可乐) (牛奶) 0.500000 1.0
9 (可乐, 牛奶) (面包) 0.500000 1.0
10 (可乐) (面包, 牛奶) 0.500000 1.0
11 (面包, 鸡蛋) (牛奶) 0.666667 1.0
12 (鸡蛋, 牛奶) (面包) 0.666667 1.0
13 (鸡蛋) (面包, 牛奶) 0.666667 1.0
14 (面包, 黄油) (牛奶) 0.500000 1.0
15 (黄油, 牛奶) (面包) 0.500000 1.0
16 (黄油) (面包, 牛奶) 0.500000 1.0
“”
apriori关联规则python简单例子
最新推荐文章于 2024-07-28 15:46:11 发布