import pandas as pd
from apyori import apriori
import matplotlib.pyplot as plt# 读取【StationeryOrder.csv】文件的数据
data = pd.read_csv('文具市场购物篮案例练习/工作/StationeryOrder.csv', encoding='gbk')# 查看数据的前 10 行信息
data.head(10)# 查看数据基本信息
data.info()
# 查看数据中的重复行
data[data.duplicated()]
# 查看数据的描述性统计信息
data.describe()# 定义函数,将数据类型转换成列表
def conversion_data(s):return [s]# 将“文具”列数据由“字符串”转变为“包含单个字符串的列表”
data['stationery'] = data['stationery'].agg(conversion_data)
# 将同一“id”的“包含单个字符串的列表”数据聚合为“包含多个字符串的列表”数据,并重置索引
new_data = data.groupby('id').sum().reset_index()# 设置最小支持度、最小置信度以及最小提升度分别为:0.02、0.45、1
results = apriori(new_data['stationery'], min_support=0.02,min_confidence=0.45, min_lift=1)
# 创建列表
extract_result = []for result in results:# 获取支持度,并保留3位小数support = round(result.support, 3)# 遍历ordered_statistics对象for rule in result.ordered_statistics:# 获取前件和后件并转成列表head_set = list(rule.items_base)tail_set = list(rule.items_add)# 跳过前件为空的数据if head_set == []:continue# 提取置信度,并保留3位小数confidence = round(rule.confidence, 3)# 提取提升度,并保留3位小数lift = round(rule.lift, 3)# 将提取的数据保存到提取列表中extract_result.append([head_set, tail_set, support, confidence, lift])# 将数据转化为 DataFrame 的格式
result_df = pd.DataFrame(extract_result, columns=['前件', '后件', '支持度', '置信度', '提升度'])# 将“前件”、“后件”列转成字符串,方便后续提取数据
result_df['前件'] = result_df['前件'].astype('str')
result_df['后件'] = result_df['后件'].astype('str')
# 提取后件中“中性笔”的数据
gel_pens = result_df[result_df['后件'] == "['中性笔']"]
# 按照“支持度”对提取的数据进行排序
gel_pens = gel_pens.sort_values('支持度')# 获取重置后的索引
df_index = gel_pens.reset_index().index
# 设置 柱子的宽度
width = 0.2
# 设置 x 的坐标值
x = df_index
x1 = x-width/2
x2 = x+width/2
# 设置 y 的坐标值
y1 = gel_pens['支持度']
y2 = gel_pens['置信度']# 设置字体
plt.rcParams['font.family'] = ['sans-serif']
plt.rcParams['font.sans-serif'] = ['SimHei']
# 设置画布尺寸
plt.figure(figsize=(18, 10))# 绘制多组柱状图
plt.bar(x1, y1, width=width)
plt.bar(x2, y2, width=width)# 设置图表标题名及字体大小
plt.title('“中性笔”对应前件的支持度、置信度数值比较', fontsize=20)# 设置 x 坐标轴的刻度
plt.xticks(x, gel_pens['前件'])# 设置坐标轴的标题名及字体大小
plt.xlabel('前件', fontsize=15)
plt.ylabel('数值', fontsize=15)# 设置 y 轴的数值显示范围
plt.ylim(0, 0.6)# 设置图例
plt.legend(['支持度', '置信度'], fontsize=15)# 设置数据标签
for a, b in zip(x1, y1):plt.text(a, b, str(round(b*100, 1))+'%',ha='center', va='bottom', fontsize=12)
for a, b in zip(x2, y2):plt.text(a, b, str(round(b*100, 1))+'%',ha='center', va='bottom', fontsize=12)

apriori算法分析 购物篮分析相关推荐

  1. 购物篮分析(Apriori算法):Mlxtend实现

    目录 1.基础概念 2.购物篮分析:指标用法 3.规则生成基本流程 3.1.找出频繁项集 3.2.找出上步中频繁项集的规则 4.Python实现:mlxtend 参考 1.基础概念 项集: 购物篮也称 ...

  2. 使用Apriori关联规则算法实现购物篮分析

    Apriori算法是一种挖掘关联规则的频繁项集算法,其核心思想是通过候选集生成和情节的向下封闭检测两个阶段来挖掘频繁项集,而且算法已经被广泛的应用到商业,网络安全等各个领域. 购物篮分析是通过发视频顾 ...

  3. 购物篮分析( Apriori算法)—零售数据实战

    购物篮分析( Apriori算法)-零售数据实战 [开题]在我从事零售行业的期间,曾拜读过"啤酒与尿布"一书,对于沃尔玛的购物篮分析模型产生极大的兴趣.由于网上对Aprioro算法 ...

  4. 数据挖掘算法之-关联规则挖掘(Association Rule)(购物篮分析)

    在各种数据挖掘算法中,关联规则挖掘算是比较重要的一种,尤其是受购物篮分析的影响,关联规则被应用到很多实际业务中,本文对关联规则挖掘做一个小的总结. 首先,和聚类算法一样,关联规则挖掘属于无监督学习方法 ...

  5. python 关联分析算法的包_Python 极简关联分析(购物篮分析)

    关联分析,也称购物篮分析,本文目的: 基于订单表,用最少的python代码完成数据整合及关联分析 文中所用数据下载地址: 使用Python Anaconda集成数据分析环境,下载mlxtend机器学习 ...

  6. 《推荐系统笔记(十三)》购物篮分析 —— 基于关联规则的topN推荐

    购物篮分析最初出现于大型零售商,他们通过分析大量的发票数据,分析出购买特定商品的消费者更可能还购买哪种商品. Transactions数据集 每一个这样的数据,其实就是一个消费者一次购买的商品清单,我 ...

  7. 数据挖掘实战—商品零售购物篮分析

    文章目录 引言 一.数据探索性分析 1.数据质量分析 1.1 缺失值分析 1.2 异常值分析 1.3 重复数据分析 2.数据特征分析 2.1 描述性统计分析 2.2 分布分析 2.2.1 商品热销情况 ...

  8. 关联算法①——《啤酒与尿布》购物篮分析

    关联算法系列目录: 关联算法②--Apriori算法原理及python实现 关联算法③--Apriori算法实现主播关联度分析 关联算法是通过支出度,置信度,提高度三个指标,寻找有相关性的商品或其它物 ...

  9. 关联规则之购物篮分析

    购物篮分析常用于许多实体商店和在线零售的推荐系统,通过关联规则,可以将经常一起购买的商品进行组合,实现销量的提升. 关联规则中有三个非常重要的指标:支持度.可信度和提升度. 支持度,指所有项集中,同时 ...

最新文章

  1. java课程心得_javaweb课程心得体会(三)
  2. 1.1节 Buck Converter--降压转换器 part1
  3. 防沉迷人脸识别可以扫照片吗_人脸识别的智能门锁到底安不安全?用照片可以打开是真的吗?...
  4. 中间显示内容_在Excel表格中,你知道编辑栏吗?可以编辑公式和录入内容
  5. 视频图像处理平台对比_对比传统智能结算,戈子视觉结算有了质的改变
  6. java springmvc搭建_【JavaEE】Springmvc+Spring搭建方法及example
  7. Python论做游戏外挂,Python输过谁?
  8. 《天天数学》连载41:二月十日
  9. mybatis基于XML(二)
  10. DeFi货币市场协议DMM宣布因监管部门的要求,已停止运营
  11. element级联选择框的使用~干货分享
  12. 最常用的PHP正则表达式收集整理
  13. 五款PC端小说阅读器 readbook、非常酷阅读器、iSilo、AlReader、haalireader
  14. 两种方法在Qt中使用OpenGL库加载stl三维模型
  15. RocketMq配置rocketmq-console控制台管理账号密码
  16. 定期年化40%,我把5000多个FIL全部存入了DMEX平台
  17. 输入法出现异常???输入英文字母分隔很大???你真的会使用输入法了吗???如何高效使用输入法???微软自带输入法切换
  18. Webpack 安装css-loader和style-loader报错
  19. Android应用全屏显示
  20. 鸟人的Android揭秘(9)——Init进程运行过程

热门文章

  1. php打开文件读和写,PHP实现文件的读和写功能
  2. 2018年,哪些行业在悄然进行数字化转型?
  3. 【 失 恋 时 十 大 必 听 歌 曲 】
  4. 安装my sql数据库安装详细教程
  5. NXP 下载 processor 或board SDK 流程
  6. 翼次元空间资讯:区块链互联网酒业“心直酒快”有动作
  7. VMware15启动虚拟机导致win10 pro蓝屏问题解决
  8. Java 框架领域佼佼者 Spring 初识篇
  9. 电子印章助力建筑行业合同传、审、签、存一体化、数字化
  10. 一文带你理解云原生 | 云原生全景图详解