购物篮分析( Apriori算法)—零售数据实战
【开题】在我从事零售行业的期间,曾拜读过"啤酒与尿布"一书,对于沃尔玛的购物篮分析模型产生极大的兴趣。由于网上对Aprioro算法介绍的内容较少,故而本人不得已回去复习了概率论,并自学了一段时间的购物篮分析基础知识,终于弄懂了购物篮分析模型基本的指标和计算等知识。由于本文参考了很多大佬写的文章,故而以@jiaxin_Jasmine(案例教程:https://blog.youkuaiyun.com/weixin_43962871/article/details/89160752)和@不论如何未来很美好(案例教程:https://blog.youkuaiyun.com/qq_36523839/article/details/83960195)为框架,构建业务数据上购物篮分析模型
前言
由于购物篮分析有较多的指标,如频繁集、支持度、置信度等概念,而本文仅作为一个业务数据实操性的讲解,故而相关的概念给出以下链接,请各位同学自行查阅:
1、@数据小斑马:关联算法①——《啤酒与尿布》购物篮分析
https://blog.youkuaiyun.com/cindy407/article/details/95242734
2、@qq924178473:关联规则——关联分析
https://blog.youkuaiyun.com/h_jlwg6688/article/details/107793274
提示:网上有较多的讲解,可多看
一、数据源介绍
首先要声明,本文数据源已做处理,仅用于教学讲解目的,不会泄露或侵犯到任何公司或个人利益,如有侵权行为,请咨询相关法律人士。
字段解释:标题(顾客购买商品明细)、下单时间、下单用户(有ID号的为注册会员、空值为普通顾客)、订单状态(成功交易、退款交易等)、应收金额(顾客付款金额)
时间范围:2020年12月15日~12月31日,半个月
此外提醒各位同学,对零售行业购物篮分析的数据尽可能时间范围缩短,因为零售行业有比较多的促销活动,会导致某一时段内,某些促销组合商品出现的频次比日常销售时段多,额外还会受到某些环境因素的影响等种种原因,故而本文选择半个月的交易清单作为数据源,尽量降低环境和促销因素的影响。
二、Apriori模型构建
1.数据导入和清洗
本次使用数据分析最常用的pandas和numpy库,还有最核心的mlxtend机器学习包
代码如下(示例):
#百香果店购物篮分析模型
import pandas as pd
import numpy as np
from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
#显示输出数据对齐设置,仅为数据输出好看一些
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)
本次原始数据源共5个字段,8938条记录,其中下单用户非空行数1910条(注册会员ID交易记录),下单时间为string字符型,下单用户为float浮点型。
代码如下(示例):
#读取数据,建议使用短期正常销售数据,减少促销活动等因素影响
df_all = pd.read_excel('C:\\Users\\ASUS\\Desktop\\百香果店1215~1231订单.xlsx')
>>> df_all.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8938 entries, 0 to 8937
Data columns (total 5 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----