什么是关联规则,用python如何进行关联规则分析
时间: 2024-04-29 14:25:30 浏览: 8
关联规则是一种数据挖掘技术,用于发现数据中的相关性和规律。它可以帮助我们发现不同变量之间的关系,从而可以更好地理解数据和作出决策。
在Python中,可以使用Apriori算法进行关联规则分析。Apriori算法是一种基于频繁项集的算法,它的核心思想是:如果一个项集是频繁的,那么它的所有子集也一定是频繁的。基于这个思想,可以使用Apriori算法来挖掘频繁项集,进而发现关联规则。
以下是Python中使用Apriori算法进行关联规则分析的示例代码:
```python
# 导入需要的库
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
# 创建数据集
dataset = [['牛奶', '面包', '尿布'],
['可乐', '面包', '尿布', '啤酒'],
['牛奶', '尿布', '啤酒', '鸡蛋'],
['面包', '牛奶', '尿布', '啤酒'],
['面包', '牛奶', '尿布', '可乐']]
# 转换为独热编码格式
from mlxtend.preprocessing import TransactionEncoder
te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)
# 挖掘频繁项集
frequent_itemsets = apriori(df, min_support=0.6, use_colnames=True)
# 根据频繁项集生成关联规则
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7)
# 输出结果
print(rules)
```
在上述代码中,我们首先创建了一个包含5个交易的数据集,然后使用TransactionEncoder将其转换为独热编码格式。接着,我们使用Apriori算法挖掘频繁项集,设定最小支持度为0.6。最后,我们根据频繁项集生成关联规则,设定最小置信度为0.7。运行代码后,可以得到如下输出:
```
antecedents consequents antecedent support consequent support support confidence lift leverage conviction
0 (面包, 尿布) (牛奶) 0.6 0.6 0.6 1.0 1.666667 0.24 inf
1 (可乐) (尿布) 0.4 0.8 0.4 1.0 1.250000 0.08 inf
2 (可乐) (面包) 0.4 0.8 0.4 1.0 1.250000 0.08 inf
3 (面包, 牛奶) (尿布) 0.6 0.8 0.6 1.0 1.250000 0.12 inf
4 (尿布, 牛奶) (面包) 0.6 0.8 0.6 1.0 1.250000 0.12 inf
5 (面包, 尿布) (可乐) 0.6 0.4 0.4 0.666667 1.666667 0.16 1.8
6 (牛奶) (面包, 尿布) 0.6 0.6 0.6 1.0 1.666667 0.24 inf
7 (尿布) (面包, 牛奶) 0.8 0.6 0.6 0.75 1.250000 0.12 1.6
8 (面包) (尿布, 牛奶) 0.8 0.6 0.6 0.75 1.250000 0.12 1.6
9 (尿布) (可乐) 0.8 0.4 0.4 0.50 1.250000 0.08 1.2
10 (面包) (可乐) 0.8 0.4 0.4 0.50 1.250000 0.08 1.2
```
上述输出结果中,每一行表示一条关联规则,其中antecedents表示前提,consequents表示结论,support表示支持度,confidence表示置信度,lift表示提升度,leverage表示杠杆率,conviction表示确信度。通过分析输出结果,我们可以得出一些关于数据的结论,例如:牛奶和面包的组合会促进尿布的销售,可乐和面包或尿布的组合会促进其他商品的销售。