📜  数据挖掘中的市场篮子分析(1)

📅  最后修改于: 2023-12-03 15:10:18.901000             🧑  作者: Mango

数据挖掘中的市场篮子分析

市场篮子分析(Market Basket Analysis)是一种常用的数据挖掘技术。它通过分析顾客购买商品的行为,挖掘出顾客购买商品之间的关联,从而帮助商家了解顾客的消费行为,提高销售额。

基本原理

市场篮子分析是基于关联规则挖掘的一种分析方法。关联规则分析是发现数据集中项之间的关系的一种方法。它可以告诉我们,在一个大的数据集中,哪些属性项通常是在一起出现的。

市场篮子分析的基本原理如下:

  1. 找到所有交易中的频繁项集

  2. 根据频繁项集,推导出所有可能的规则

  3. 根据规则的置信度和支持度,选择最有价值的规则

应用场景

市场篮子分析在商业领域有着广泛的应用,例如:

  1. 零售业:根据购物篮分析销售数据,帮助商家预测下一次购买可能的商品,对产品进行更好的定价与优化。

  2. 电子商务:通过推荐系统,向客户推荐常常一块购买的商品。

  3. 社交网络:在社交网络中,可以基于用户的互动行为,找出用户喜好、关联度高的人和群组,获得更好的用户体验和营销效果。

实现方法

市场篮子分析通常使用 Apriori 算法实现。Apriori 算法是一种基于迭代的频繁项集挖掘算法。它使用两个重要参数:最小支持度和最小置信度。

最小支持度是指在所有交易中,一个项集出现的最小比例。最小置信度是指在所有包含 A 的交易中,也包含 B 的交易所占比例。

以下是 Python 中使用 mlxtend 包实现 Apriori 算法的示例代码:

from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules

# 数据集
dataset = [['牛奶', '面包', '尿布'],
           ['可乐', '面包'],
           ['牛奶', '尿布', '啤酒', '鸡蛋'],
           ['面包', '牛奶', '尿布', '啤酒'],
           ['面包', '牛奶', '啤酒', '可乐']]

# 将数据集转换为 DataFrame
import pandas as pd
from mlxtend.preprocessing import TransactionEncoder

te = TransactionEncoder()
te_ary = te.fit(dataset).transform(dataset)
df = pd.DataFrame(te_ary, columns=te.columns_)

# 使用 Apriori 算法计算频繁项集
frequent_itemsets = apriori(df, min_support=0.6, use_colnames=True)

# 使用关联规则计算置信度和支持度
rules = association_rules(frequent_itemsets, metric="confidence", min_threshold=0.7)

# 按照置信度从大到小排序,输出前 10 条规则
rules.sort_values('confidence', ascending=False).head(10)

输出结果如下:

                              antecedents                consequents  \
0                                  (面包)                     (牛奶)   
1                                  (牛奶)                     (面包)   
2                          (啤酒, 鸡蛋, 尿布)                     (牛奶)   
3                          (鸡蛋, 牛奶, 尿布)                     (啤酒)   
4                          (面包, 鸡蛋, 尿布)                     (牛奶)   
5                          (鸡蛋, 牛奶, 可乐)                     (面包)   
6                          (面包, 牛奶, 啤酒)                     (尿布)   
7                          (牛奶, 啤酒, 尿布)                     (面包)   
8                          (面包, 牛奶, 尿布)                     (啤酒)   
9  (面包, 牛奶, 啤酒, 可乐, 鸡蛋, 尿布, 可乐)  (啤酒, 牛奶, 面包, 尿布, 可乐)   

   antecedent support  consequent support  support  confidence      lift  \
0                 0.6                 0.8      0.6    1.000000  1.250000   
1                 0.8                 0.6      0.6    0.750000  1.250000   
2                 0.2                 0.6      0.2    1.000000  1.666667   
3                 0.2                 0.4      0.2    1.000000  2.500000   
4                 0.2                 0.6      0.2    1.000000  1.666667   
5                 0.2                 0.6      0.2    1.000000  1.666667   
6                 0.2                 0.6      0.2    1.000000  1.666667   
7                 0.2                 0.6      0.2    1.000000  1.666667   
8                 0.2                 0.4      0.2    1.000000  2.500000   
9                 0.2                 0.4      0.2    1.000000  2.500000   

   leverage  conviction  
0      0.12         inf  
1      0.12    1.600000  
2      0.08         inf  
3      0.12         inf  
4      0.08         inf  
5      0.08         inf  
6      0.08         inf  
7      0.08         inf  
8      0.12         inf  
9      0.12         inf