购物篮商品关联规则分析实验
引言
随着大数据时代的到来,越来越多的数据产生和积累,如何从这些数据中挖掘出有用的信息成为了重要的研究课题。购物篮商品关联规则分析是一种常见的数据挖掘方法,它可以通过分析顾客购买的商品之间的关联关系,从而帮助商家做出更好的营销决策。
在本文中,我们将使用CRISP-DM模型来完成购物篮商品关联规则分析的全生命周期工作。CRISP-DM(Cross Industry Standard Process for Data Mining)是一种常用的数据挖掘项目管理方法,它包括了六个阶段:业务理解、数据理解、数据准备、模型建立、模型评估和模型部署。
业务理解
在购物篮商品关联规则分析中,我们的目标是分析顾客购买的商品之间的关联关系,从而帮助商家进行更有针对性的商品推荐和促销活动。
数据理解
首先,我们需要了解和分析所使用的数据。在购物篮商品关联规则分析中,我们通常使用交易数据,包括顾客购买的商品清单。
下面是一段示例交易数据:
# 加载数据
import pandas as pd
transactions = pd.read_csv('transactions.csv')
transactions.head()
TransactionID | Items |
---|---|
1 | Apple, Banana |
2 | Apple, Orange |
3 | Banana, Orange |
4 | Apple, Banana, Pear |
5 | Banana, Pear |
数据准备
在数据准备阶段,我们需要对原始数据进行清洗和预处理。
首先,我们将交易数据转换成适合关联规则分析的形式。在购物篮分析中,常用的表示方法是使用独热编码(One-Hot Encoding)。
# 使用独热编码转换数据
from mlxtend.preprocessing import TransactionEncoder
te = TransactionEncoder()
te_ary = te.fit(transactions['Items'].apply(lambda x: x.split(',')).to_list()).transform(transactions['Items'].apply(lambda x: x.split(',')).to_list())
df = pd.DataFrame(te_ary, columns=te.columns_)
df.head()
Apple | Banana | Orange | Pear |
---|---|---|---|
1 | 1 | ||
1 | 1 | ||
1 | 1 | ||
1 | 1 | 1 | |
1 | 1 |
接下来,我们可以使用关联规则分析算法来发现购物篮中的商品关联关系。常用的关联规则分析算法包括Apriori算法和FP-Growth算法。
# 使用Apriori算法挖掘关联规则
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
frequent_itemsets = apriori(df, min_support=0.1, use_colnames=True)
rules = association_rules(frequent_itemsets, metric="lift", min_threshold=1)
rules.head()
antecedents | consequents | antecedent support | consequent support | support | confidence | lift | leverage | conviction | |
---|---|---|---|---|---|---|---|---|---|
[Apple] | [Banana] | 0.6 | 0.8 | 0.4 | 0.666667 | 0.833333 | 0.08 | 0.6 | |
1 | [Banana] | [Apple] | 0.8 | 0.6 | 0.4 | 0.5 | 0.833333 | 0.08 | 0.8 |
2 | [Banana] | [Orange] | 0.8 | 0.6 | 0.4 |