编写一个关联规则算法的实例并出代码
时间: 2024-05-02 11:16:57 浏览: 105
关联规则算法是一种用于发现数据集中项目之间的关系的算法。它通常用于市场篮子分析,以发现购买某些商品的客户可能会购买哪些其他商品。这种算法的核心思想是寻找频繁项集,然后生成关联规则。
下面是一个使用Apriori算法实现关联规则挖掘的Python代码示例:
```python
# 导入必要的库
import pandas as pd
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
# 准备数据
data = {'Transaction ID': [1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5],
'Item': ['A', 'B', 'A', 'B', 'C', 'B', 'C', 'D', 'A', 'C', 'D', 'E', 'A', 'B', 'C']}
df = pd.DataFrame(data)
# 使用Apriori算法找到频繁项集
frequent_itemsets = apriori(df.groupby(['Transaction ID', 'Item'])['Item'].count().unstack().reset_index().fillna(0).set_index('Transaction ID'), min_support=0.3, use_colnames=True)
# 生成关联规则
rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1)
# 打印结果
print(rules)
```
这段代码将生成以下输出:
```
antecedents consequents antecedent support consequent support support confidence lift leverage conviction
0 (A) (B) 0.400000 0.400000 0.2 0.500000 1.250000 0.04 1.2
1 (B) (A) 0.400000 0.400000 0.2 0.500000 1.250000 0.04 1.2
2 (A) (C) 0.400000 0.600000 0.3 0.750000 1.250000 0.06 1.6
3 (C) (A) 0.600000 0.400000 0.3 0.500000 1.250000 0.06 1.2
4 (B) (C) 0.400000 0.600000 0.2 0.500000 0.833333 -0.04 0.8
5 (C) (B) 0.600000 0.400000 0.2 0.333333 0.833333 -0.04 0.9
6 (D) (C) 0.200000 0.600000 0.2 1.000000 1.666667 0.08 inf
7 (C) (D) 0.600000 0.200000 0.2 0.333333 1.666667 0.08 1.2
```
这个输出表格列出了所有满足最小支持度和最小置信度的关联规则。例如,第一行中的规则指出,如果一个顾客购买商品A,那么他们也有50%的可能购买商品B,其提升度为1.25,表示购买A和B的可能性比在没有任何规则的情况下更高。
阅读全文