一. 项目需求
- 根据用户购买的商品,对购买数据做关联分析
- 获得用户的商品频繁模式,比如哪些商品经常被一起购买
- 根据用户的频繁模式,可以做相应的打包销售或产品组合销售
二. 项目数据
- 数据特征:交易ID(order_id)和商品名称(product_name)
- 数据格式:事务性数据
- 唯一性:每次交易只有一个唯一ID,但是有一个订单ID对应多个商品名称的情况
三. 分析方法
- 关联模式的挖掘,两种方式:
- 基于自定义开发的Apriori关联算法库,Aprioiri算法主要有两部分组成:发现频繁项集和找出关联规则
- 引入R语言的关联算法包,实现关联结果的挖掘
- 关联结果展示:通过pyecharts实现
四. 具体过程
4.1 导入所需要的库
具体库
- pandas:用于数据读取和数据转换
- apriori:自定义库,关联算法库
- pyecharts:数据可视化库
代码如下
import pandas as pd from CorrelationAnalysis import apriori from pyecharts.charts import Graph from pyecharts import options as opts # 配置方法库
4.2 数据预处理
基本思路
- 原数据是事务性的数据记录,需要转换为关联算法所需的记录
- 关联的记录格式:每个订单ID对应的商品合并为一条记录
- 提取方法:列表推导式
- 记录数据类型:列表
代码如下
# 读取csv文件 data = pd.read_csv('order_table.csv') # 数据转换 order_ids = pd.unique(data['order_id']) order_records = [data[data['order_id'] == each_id]['product_name'].tolist() for each_id in order_ids]