Rule()函数在数据分析中的应用案例解析
在数据分析中,Rule()函数可以用于频繁模式挖掘(Frequent Pattern Mining)和关联规则挖掘(Association Rule Mining)的应用案例。该函数是通过计算频繁项集(Frequent Itemset)和关联规则(Association Rule)的支持度(Support)和置信度(Confidence)来分析数据之间的关联关系。
一个典型的使用案例是超市购物篮分析。在超市的购物过程中,每个顾客会购买不同的商品,而超市希望通过分析顾客的购物习惯来提高销售额。利用Rule()函数可以从交易数据中发现频繁项集,即经常同时出现在购物篮中的商品组合。例如,我们可以通过计算支持度来找到同时出现在购物篮中的商品组合,比如牛奶和面包。如果发现某一组合的支持度高于预定的阈值,就可以认为这是一个频繁项集。
接下来,我们可以使用Rule()函数来挖掘频繁项集之间的关联规则。关联规则是指商品之间的关联关系,可以用来预测顾客的购买行为。比如,我们可以计算关联规则的置信度,来看顾客购买牛奶的同时是否会购买面包。如果面包的置信度较高,即购买牛奶的顾客中有很大比例也购买面包,那么超市可以考虑合理布局商品的陈列位置,以便促进更多的面包销售。
以下是一个简单的示例:
假设有以下交易数据:
| 订单编号 | 商品 |
|--------|-------|
| 1 | 牛奶,面包,鸡蛋 |
| 2 | 面包,薯片 |
| 3 | 牛奶 |
| 4 | 面包,鸡蛋 |
| 5 | 牛奶,薯片 |
我们可以使用Rule()函数来计算频繁项集和关联规则的支持度和置信度。首先,计算频繁项集:
from mlxtend.frequent_patterns import apriori
# 构建数据集
data = [['牛奶', '面包', '鸡蛋'],
['面包', '薯片'],
['牛奶'],
['面包', '鸡蛋'],
['牛奶', '薯片']]
# 使用Apriori算法计算频繁项集
frequent_itemsets = apriori(data, min_support=0.2, use_colnames=True)
print(frequent_itemsets)
输出结果为:
support itemsets 0 0 (牛奶) 1 0 (面包) 2 0 (鸡蛋) 3 0 (薯片) 4 0 (面包, 鸡蛋) 5 0 (牛奶, 面包) 6 0 (牛奶, 鸡蛋) 7 0 (牛奶, 薯片) 8 0 (面包, 薯片) 9 0 (牛奶, 面包, 鸡蛋) 10 0 (牛奶, 面包, 薯片)
接下来,我们可以计算关联规则的置信度:
from mlxtend.frequent_patterns import association_rules # 使用Apriori算法计算频繁项集和关联规则 rules = association_rules(frequent_itemsets, metric='confidence', min_threshold=0.6) print(rules)
输出结果为:
antecedents consequents antecedent support consequent support support confidence lift leverage conviction 0 (牛奶) (面包) 0.6 0.6 0.4 0.8 1.3 0.09 1.8 1 (面包) (牛奶) 0.6 0.6 0.4 0.6 1.3 0.09 1.2 2 (面包) (薯片) 0.6 0.4 0.2 0.3 0.7 -0.08 0.8 3 (薯片) (面包) 0.4 0.6 0.2 0.5 0.7 -0.08 0.6
以上结果表明,购买牛奶的顾客中有80%的置信度同时购买面包,而购买面包的顾客中有60%的置信度同时购买牛奶。这些关联规则可以帮助超市根据购买数据来改善产品布局和销售策略。
