购物篮模型 Python 实战:Apriori 算法 3 步挖掘商品关联规则
📅 2026/7/7 17:06:10
👁️ 次浏览
购物篮模型 Python 实战Apriori 算法 3 步挖掘商品关联规则在零售和电商领域理解顾客的购买行为模式至关重要。你是否好奇为什么超市总把啤酒和尿布放在一起这背后正是购物篮分析的魔力。本文将带你用 Python 的mlxtend库通过 Apriori 算法三步实现商品关联规则挖掘从原始交易数据中提取有价值的商业洞察。1. 理解购物篮分析的核心指标购物篮分析的核心是发现商品之间的关联规则即如果购买了 A那么很可能也会购买 B。这种关系通过三个关键指标量化支持度Support衡量商品组合出现的频率计算公式为支持度 同时包含A和B的订单数 / 总订单数例如在1000笔订单中有150笔同时购买了牛奶和面包则该组合的支持度为15%。置信度Confidence表示购买A后也购买B的条件概率置信度 同时包含A和B的订单数 / 包含A的订单数如果购买牛奶的订单有200笔其中150笔也买了面包则牛奶→面包的置信度为75%。提升度Lift评估规则的实际价值判断组合是否随机发生提升度 支持度 / (P(A) * P(B))提升度1表示正相关1表示独立1则负相关。当提升度达到3以上通常意味着强关联。提示实际应用中建议初始阈值设置为支持度≥5%置信度≥30%提升度≥1.52. 数据准备与预处理实战开始前我们需要构造适合算法处理的交易数据格式。以下是一个典型的预处理流程import pandas as pd from mlxtend.preprocessing import TransactionEncoder # 原始交易数据示例 transactions [ [牛奶, 面包, 尿布], [可乐, 面包, 尿布, 啤酒], [牛奶, 尿布, 啤酒, 鸡蛋], [面包, 牛奶, 尿布, 啤酒], [面包, 牛奶, 尿布, 可乐] ] # 转换为算法需要的布尔矩阵 te TransactionEncoder() te_ary te.fit(transactions).transform(transactions) df pd.DataFrame(te_ary, columnste.columns_) print(df.head())输出示例啤酒可乐尿布牛奶面包鸡蛋订单1FalseFalseTrueTrueTrueFalse订单2TrueTrueTrueFalseTrueFalse对于真实业务数据通常需要从数据库或CSV加载原始交易记录# 从CSV加载零售数据集 retail pd.read_csv(retail_transactions.csv) # 按订单ID分组生成交易列表 transactions retail.groupby(OrderID)[Product].apply(list).values.tolist()常见预处理步骤包括去除低频商品减少计算复杂度处理缺失值统一商品名称大小写过滤测试订单或异常数据3. Apriori 算法实现与规则提取mlxtend库提供了完整的关联规则挖掘工具链3.1 发现频繁项集from mlxtend.frequent_patterns import apriori # 挖掘频繁项集最小支持度20% frequent_itemsets apriori(df, min_support0.2, use_colnamesTrue) frequent_itemsets.sort_values(support, ascendingFalse, inplaceTrue) print(frequent_itemsets.head())输出示例itemsetssupport0(尿布)1.01(牛奶)0.82(面包)0.83(尿布, 牛奶)0.63.2 生成关联规则from mlxtend.frequent_patterns import association_rules # 从频繁项集提取规则最小置信度70% rules association_rules(frequent_itemsets, metricconfidence, min_threshold0.7) rules.sort_values(lift, ascendingFalse, inplaceTrue) # 添加商品名称列便于解读 rules[antecedents] rules[antecedents].apply(lambda x: , .join(list(x))) rules[consequents] rules[consequents].apply(lambda x: , .join(list(x))) print(rules[[antecedents, consequents, support, confidence, lift]])典型输出结果antecedentsconsequentssupportconfidencelift牛奶, 面包尿布0.61.01.25面包尿布0.81.01.253.3 结果可视化与分析用热力图直观展示高提升度规则import seaborn as sns import matplotlib.pyplot as plt # 创建规则矩阵 pivot rules.pivot(indexantecedents, columnsconsequents, valueslift) plt.figure(figsize(10,6)) sns.heatmap(pivot, annotTrue, cmapYlGnBu, linewidths.5) plt.title(商品关联提升度热力图) plt.tight_layout() plt.show()关键分析维度高支持度高提升度优先实施的组合策略高置信度低支持度小众但精准的推荐负提升度组合避免同时促销的商品4. 商业应用与优化策略4.1 实际业务应用场景货架优化案例某超市分析发现(宠物食品, 啤酒) 提升度2.3(薯片, 碳酸饮料) 提升度1.8 调整货架布局后相关品类销售额提升27%。捆绑销售策略电商平台针对以下规则设计套餐如果 {手机} → {保护壳} (置信度89%) 如果 {咖啡机} → {咖啡豆} (提升度3.2)套餐转化率比单独销售高40%。4.2 算法调优技巧参数调整经验值场景建议支持度建议置信度大型超市(1万SKU)0.01-0.050.3-0.6电商垂直品类0.05-0.10.4-0.7快餐组合分析0.1-0.20.5-0.8处理大规模数据的两种方法# 方法1降低支持度阈值 frequent_itemsets apriori(df, min_support0.01, use_colnamesTrue) # 方法2使用FP-growth算法更高效 from mlxtend.frequent_patterns import fpgrowth frequent_itemsets fpgrowth(df, min_support0.05, use_colnamesTrue)4.3 避免常见陷阱忽略时间因素夏季的啤酒-烧烤组合在冬季可能无效过度依赖算法需结合商品常识如禁止酒类与婴儿食品组合数据代表性不足节假日的购物模式与平日差异显著注意当商品组合的置信度很高但提升度≈1时可能是因单个商品本身购买频率高而非真实关联
1. 项目概述:这不是一次“安装”,而是一场零基础者的系统性突围“别人5分钟,我2周”——这个标题不是自嘲,是实打实的现场记录。OpenClaw 这个项目,在 GitHub 上 star 数刚过两千,文档页只有三页 README&am…
📅 2026/7/7 17:06:10
群晖DSM 7.2.2 Video Station完整安装指南:解决兼容性问题 【免费下载链接】Video_Station_for_DSM_722 Script to install Video Station in DSM 7.2.2 and DSM 7.3 项目地址: https://gitcode.com/gh_mirrors/vi/Video_Station_for_DSM_722
还在为群晖DSM …
📅 2026/7/7 17:06:10
BilibiliDown深度解析:如何构建你的个人B站视频档案馆 【免费下载链接】BilibiliDown (GUI-多平台支持) B站 哔哩哔哩 视频下载器。支持稍后再看、收藏夹、UP主视频批量下载|Bilibili Video Downloader 😳 项目地址: https://gitcode.com/gh_mirrors/b…
📅 2026/7/7 17:06:10
✅作者简介:合肥自友科技 📌核心产品:智慧校园平台(包括教工管理、学工管理、教务管理、考务管理、后勤管理、德育管理、资产管理、公寓管理、实习管理、就业管理、离校管理、科研平台、档案管理、学生平台等26个子平台) 。公司所有人员均有多…
📅 2026/7/7 17:54:18
海外红人推广要做出稳定结果,不能只看一次发布后的曝光,而要把达人筛选、建联、内容执行和复盘做成连续流程。本篇从字段沉淀角度切入,以TikTok Shop增长为例,品牌需要先明确目标市场、用户问题、产品卖点、内容形式和转化路径&am…
📅 2026/7/7 17:54:18
这篇文章源于一个实际需求:我们的CI流水线需要和AI编程工具集成,2款工具的CI/CD支持情况对比。作为Android转后端的副业开发者,我深度使用TRAE Work模式(原SOLO模式)和Claude Code均超2个月,在直播弹幕系统…
📅 2026/7/7 17:54:18
B站弹幕机器人终极指南:如何构建可编程的智能直播场控系统 【免费下载链接】MagicalDanmaku 本仓库及所有相关项目已永久停止开发、维护和任何形式的分发。 项目地址: https://gitcode.com/gh_mirrors/bi/MagicalDanmaku
Bilibili-MagicalDanmaku(…
📅 2026/7/7 17:54:18
跨国药企通常选哪家实体管理供应商?
跨国药企选择实体管理(Entity Management)供应商,重点不是谁能最快完成注册或年审,而是谁能让研发中心、生产主体、商业化公司、分销实体、区域总部和并购取得的历史实体长期保持清…
📅 2026/7/7 17:54:18
【人工智能】学习SKILL基础(上) 学习SKILL基础(上)【人工智能】学习SKILL基础(上)一. 引入Skill的背景二. Skill解决问题三. 为什么skill可以节省token四. 总结一. 引入Skill的背景
在我们的日常工作当中存…
📅 2026/7/7 17:52:18
CentOS SSH连接故障排查:从基础检查到深度修复的完整指南引言当你尝试通过Xshell或其他SSH客户端连接CentOS服务器时,突然遭遇"Connection refused"或"Connection timed out"的错误提示,这种经历对任何运维人员或开发者来…
📅 2026/7/7 0:00:45
B站评论删除API逆向工程实战:关键参数解析与自动化操作指南1. 理解B站评论删除机制的核心逻辑在视频平台内容管理中,评论删除功能涉及复杂的权限验证和数据交互流程。B站的评论删除API采用了一套基于Web安全标准的防护机制,主要依赖三个关键参…
📅 2026/7/7 0:00:45
1. 项目概述:为什么Java安全是红蓝对抗的焦点在当前的网络安全攻防演练,也就是我们常说的红蓝对抗中,Java应用一直是双方交锋的核心战场。这不仅仅是因为Java在企业级应用、金融系统和大型互联网后台中无处不在,更因为其技术栈的复…
📅 2026/7/7 0:00:45
1. 项目背景与核心需求 在嵌入式系统开发中,快速精确的数据检索是一个常见但极具挑战性的需求。特别是在工业控制、医疗设备和物联网终端等场景下,系统往往需要在毫秒级时间内完成关键参数的读取和写入操作。传统基于Flash存储的方案存在擦写次数有限、操…
📅 2026/7/7 12:08:23
1. 工业电流环信号传输的基础认知在工业自动化领域,4-20mA电流环传输技术已经持续服役超过半个世纪。这种看似简单的信号传输方式之所以能经久不衰,核心在于其独特的抗干扰能力——电流信号在长距离传输时几乎不受线路电阻和电压波动的影响。我曾在化工厂…
📅 2026/7/7 9:08:28
最近在项目里尝试用 YOLO 做目标检测,从环境搭建到模型训练,再到推理部署,整个过程踩了不少坑。网上的资料虽然多,但要么版本老旧,要么步骤零散不成体系,对于刚入门的新手来说,很容易卡在某个环…
📅 2026/7/7 6:33:36
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/7 9:08:31
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/7 9:08:30
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/7 4:32:18