惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - Franky
N
Netflix TechBlog - Medium
Google Online Security Blog
Google Online Security Blog
月光博客
月光博客
量子位
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
腾讯CDC
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 聂微东
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
M
MIT News - Artificial intelligence
Vercel News
Vercel News
The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
博客园 - 【当耐特】
Apple Machine Learning Research
Apple Machine Learning Research
aimingoo的专栏
aimingoo的专栏
博客园 - 三生石上(FineUI控件)
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
MongoDB | Blog
MongoDB | Blog
H
Help Net Security
The Cloudflare Blog
Blog — PlanetScale
Blog — PlanetScale
F
Full Disclosure
G
Google Developers Blog
罗磊的独立博客
Jina AI
Jina AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
J
Java Code Geeks
A
About on SuperTechFans
IT之家
IT之家
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
有赞技术团队
有赞技术团队
GbyAI
GbyAI
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
The Register - Security
The Register - Security
U
Unit 42
D
Docker
Martin Fowler
Martin Fowler
L
LINUX DO - 热门话题
NISL@THU
NISL@THU
阮一峰的网络日志
阮一峰的网络日志
C
Cybersecurity and Infrastructure Security Agency CISA
博客园_首页
Google DeepMind News
Google DeepMind News

牛牛技术客栈

设计模式-备忘录模式 - OXOXTECH 牛牛技术客栈 设计模式-中介者模式 - OXOXTECH 牛牛技术客栈 Linux【Ubuntu】修改ssh默认端口 - OXOXTECH 牛牛技术客栈 设计模式-迭代器模式 - OXOXTECH 牛牛技术客栈 scheduled定时任务的三种基本实现方式 - OXOXTECH 牛牛技术客栈 Apriori - 基于关联规则的推荐算法(三) - OXOXTECH 牛牛技术客栈 Apriori - 基于关联规则的推荐算法(一) - OXOXTECH 牛牛技术客栈 基于JavaFX的桌面端网络调试工具 - OXOXTECH 牛牛技术客栈 Golang Channel的原理介绍 - OXOXTECH 牛牛技术客栈 Go语言Map的原理分析 - OXOXTECH 牛牛技术客栈 Go语言错误处理(panic)的最佳实践 - OXOXTECH 牛牛技术客栈 设计模式-解释器模式 - OXOXTECH 牛牛技术客栈 Redis报错Redis is configured to save RDB snapshots, but it's currently unable to persist to disk. go-webpbin库在Linux报错failed to encode image to WebP: exit status 1.......的问题 exe4j 打包加密的jar - OXOXTECH 牛牛技术客栈 Go生成图形验证码示例 - OXOXTECH 牛牛技术客栈 澳门一天游:一日尽享东方与西方的交融之美 - OXOXTECH 牛牛技术客栈 设计模式-命令模式 - OXOXTECH 牛牛技术客栈 别再自己瞎写工具类了,SpringBoot内置工具类应有尽有 - OXOXTECH 牛牛技术客栈 中山一日游 - OXOXTECH 牛牛技术客栈 设计模式-责任链模式 - OXOXTECH 牛牛技术客栈 起舞吧,齐舞吧 - OXOXTECH 牛牛技术客栈 设计模式-组合模式 - OXOXTECH 牛牛技术客栈 Go语言Web开发|GoFrame框架入门笔记 - OXOXTECH 牛牛技术客栈 Java打包exe教程 - OXOXTECH 牛牛技术客栈 设计模式-代理模式 - OXOXTECH 牛牛技术客栈 MySQL存储过程的优缺点有哪些? - OXOXTECH 牛牛技术客栈 前端渲染优化有哪些? - OXOXTECH 牛牛技术客栈 HTTP状态码及其含义 - OXOXTECH 牛牛技术客栈 从浏览器地址栏输入url到显示页面的步骤 - OXOXTECH 牛牛技术客栈 TypeScript事件派发管理器 - OXOXTECH 牛牛技术客栈 MQTT保留消息的使用方法 - OXOXTECH 牛牛技术客栈 世界工程-港珠澳大桥游 - OXOXTECH 牛牛技术客栈 Golang逃逸分析 - OXOXTECH 牛牛技术客栈 设计模式-享元模式 - OXOXTECH 牛牛技术客栈 牛牛成长记录 - OXOXTECH 牛牛技术客栈 ffmpeg常用命令 - OXOXTECH 牛牛技术客栈 设计模式-外观模式 - OXOXTECH 牛牛技术客栈 设计模式-装饰器模式 - OXOXTECH 牛牛技术客栈 设计模式-桥接模式 - OXOXTECH 牛牛技术客栈 5周年恋爱纪念日 - OXOXTECH 牛牛技术客栈 2024新年快乐,龙腾四海 - OXOXTECH 牛牛技术客栈 迎接新年:除夕的美好时刻 - OXOXTECH 牛牛技术客栈 设计模式-适配器模式 - OXOXTECH 牛牛技术客栈 设计模式-原型模式 - OXOXTECH 牛牛技术客栈 设计模式-建造者模式 - OXOXTECH 牛牛技术客栈 设计模式-工厂模式 - OXOXTECH 牛牛技术客栈 设计模式-单例模式 - OXOXTECH 牛牛技术客栈 SpringBoot在Linux环境下发送163邮件失败(No appropriate protocol (protocol is disabled or cipher suites are inappropriate)) 海与日落 - OXOXTECH 牛牛技术客栈 Swagger比较常用的注解 - OXOXTECH 牛牛技术客栈 猫🐱牛 - OXOXTECH 牛牛技术客栈 2023年最后一个晚霞 - OXOXTECH 牛牛技术客栈 Linux(Centos)部署Nginx教程 - OXOXTECH 牛牛技术客栈 Linux MySQL下载安装详细教程(CentOS版) - OXOXTECH 牛牛技术客栈 JavaFx打包成exe - OXOXTECH 牛牛技术客栈 Flux脚本语言入门教程 - OXOXTECH 牛牛技术客栈 演唱会出图 - OXOXTECH 牛牛技术客栈 Netty TCP解决粘包拆包 - OXOXTECH 牛牛技术客栈 SpringBoot实现订单超时取消的几种方案 - OXOXTECH 牛牛技术客栈 详解Java并发中的各种锁 - OXOXTECH 牛牛技术客栈 SpringBoot集成支付宝支付 - OXOXTECH 牛牛技术客栈 雪花算法:分布式系统唯一ID生成算法 - OXOXTECH 牛牛技术客栈 Java解决空指针的神器Optional - OXOXTECH 牛牛技术客栈 与兴一起 - OXOXTECH 牛牛技术客栈 Java17新特性详解与安装 - OXOXTECH 牛牛技术客栈 Jdk17安装+环境配置详细教程 - OXOXTECH 牛牛技术客栈 孤注一掷 - OXOXTECH 牛牛技术客栈 解决WinSCP经常断线重连 - OXOXTECH 牛牛技术客栈 内存不足导致Tomcat崩溃问题排查与解决办法 - OXOXTECH 牛牛技术客栈 influxDB初识,一个高效的时序数据库 - OXOXTECH 牛牛技术客栈 SpringBoot 服务接口限流方案 - OXOXTECH 牛牛技术客栈 Docker 安装 Portainer - OXOXTECH 牛牛技术客栈 Linux 安装Docker - OXOXTECH 牛牛技术客栈 物料宣传 - OXOXTECH 牛牛技术客栈 Java使用EMQX实现MQTT通信 - OXOXTECH 牛牛技术客栈 Java实现常见的排序算法 - OXOXTECH 牛牛技术客栈 FreeSwitch Windows安装教程 - OXOXTECH 牛牛技术客栈 MQTT单向SSL数据加密 - OXOXTECH 牛牛技术客栈 随性 - OXOXTECH 牛牛技术客栈 mysql报错Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggre的解决方案 Git Push项目报 push to origin/master was rejected 错误解决方案 游行记——珠海金沙滩与金湖公园之行 - OXOXTECH 牛牛技术客栈 Tomcat:解决Tomcat启动警告:"无法将资源添加到Web应用程序缓存中....请考虑增加缓存空间" 的问题 - OXOXTECH 牛牛技术客栈 励骏庞都广场,迷一般的皇宫 - OXOXTECH 牛牛技术客栈 Docker 常用命令集合 - OXOXTECH 牛牛技术客栈 ElasticSearch Windows版-安装教程 - OXOXTECH 牛牛技术客栈 Java去除对象中为null的字段 - OXOXTECH 牛牛技术客栈 我和我的青春 - OXOXTECH 牛牛技术客栈 Java实现螺旋矩阵算法: - OXOXTECH 牛牛技术客栈 Java直接内存分配和释放的理解 - OXOXTECH 牛牛技术客栈 FreeSwitch将默认数据库迁移至MySQL - OXOXTECH 牛牛技术客栈 别错过路上的风景,别错过刹那间的深情! - OXOXTECH 牛牛技术客栈 Viewer.js:一款强大的图片预览组件 - OXOXTECH 牛牛技术客栈 Java JDK Proxy和CGLib动态代理示例 - OXOXTECH 牛牛技术客栈 redis常用命令 - OXOXTECH 牛牛技术客栈 SpringBoot查询IP归属地 - OXOXTECH 牛牛技术客栈 Spring 事务失效的六种情况 - OXOXTECH 牛牛技术客栈 #张艺兴每时每刻# - OXOXTECH 牛牛技术客栈 Nginx常用命令及具体应用 - OXOXTECH 牛牛技术客栈
Apriori - 基于关联规则的推荐算法(二) - OXOXTECH 牛牛技术客栈
tsinghualee · 2025-09-13 · via 牛牛技术客栈

Apriori Algorithm - 先验算法,基于数据挖掘和关联规则的推荐算法(二)

前言:上一章介绍了Apriori算法的核心概念、数据频繁项集、以及算法的核心公式。接下来将通过一个例子,手工演算Apriori算法

上一章传送门:Apriori Algorithm - 先验算法,基于数据挖掘和关联规则的推荐算法(一)

Apriori实例

在一家烧烤店,有6名客人,分别购买了以下商品,计算商品之间的关联性

tips: 数据的N项集,以下简称K = N

客人购买的产品
老李鸡翅,玉米,羊肉串,韭菜,鸡杂,啤酒
老王鸡翅,韭菜,鸡杂,柠檬茶
张三羊肉串,韭菜
徐义杰玉米,鸡杂,柠檬茶,啤酒
刘淇昌鸡翅,韭菜,羊肉串,鸡杂,柠檬茶
徐家丽鸡翅,韭菜,玉米柠檬茶

step1: 定义2个关键值(minSup、minConf)

   minSup = 0.5 = 50%            minConf = 0.7 = 70%

step2: 计算数据K=1项集Sup

L1C1Sup1
鸡翅42/3 -> 0.667
玉米31/2 -> 0.5
羊肉串31/2 -> 0.5
韭菜42/3 -> 0.667
鸡杂42/3 -> 0.667
啤酒(此Sup < minSup,不再参与后续聚合)21/3 -> 0.334
柠檬茶42/3 -> 0.667

根据第一章的Sup计算公式可得出所有商品的K=1项集Sup

例:Sup{鸡翅} = 鸡翅出现的次数(4次) / 总数据项数量(6条) = 4 / 6 = 2/3 = 0.667 (之后的Sup计算不再举例说明)

step3: 计算数据K=2项集Sup

同理,Sup < minSup的数据集不再记录在表格中

L2C2Sup2
{鸡翅,韭菜}42/3 → 0.667
{鸡翅,鸡杂}31/2 → 0.5
{鸡翅,柠檬茶}31/2 → 0.5
{羊肉串,韭菜}31/2 → 0.5
{韭菜,鸡杂}31/2 → 0.5
{韭菜,柠檬茶}31/2 → 0.5

step4: 计算数据K=3项集Sup

L3C3Sup3
{鸡翅,韭菜,鸡杂}31/2 → 0.5
{鸡翅,韭菜,柠檬茶}31/2 → 0.5

至此,所有数据集的Sup计算完毕!

step5: 计算全部Sup对应的Conf

   Conf({鸡翅,韭菜} -> {鸡杂}) = {鸡翅,韭菜,鸡杂} / {鸡翅,韭菜}  = C3 / C2 = 3 / 4 = 0.75

   Conf({鸡翅,鸡杂} → {韭菜})= {鸡翅,鸡杂,韭菜} / {鸡翅,鸡杂} = C3 / C2 = 3/3 = 1

   Conf({鸡翅,韭菜} → {柠檬茶})= {鸡翅,韭菜,柠檬茶} / {鸡翅,韭菜} = C3 / C2 = 3/4 = 0.75

以上为K=3的Conf计算

   Conf({柠檬茶,韭菜} → {鸡翅})= {鸡翅,韭菜,柠檬茶} / {柠檬茶,韭菜} = C3 / C2 = 3/3 = 1

   Conf{鸡翅} → {韭菜} = {鸡翅,韭菜} / {鸡翅} = C2 / C1 = 4/4 = 1

   Conf{鸡杂} → {鸡翅} = {鸡翅,鸡杂} / {鸡杂} = C2 / C1 = 3/4 = 0.75

   Conf{鸡翅} → {柠檬茶} = {鸡翅,柠檬茶} / {鸡翅} = C2 / C1 = 3/4 = 0.75

   Conf{羊肉串} → {韭菜} = {羊肉串,韭菜} / {羊肉串} = C2 / C1 = 3/3 = 1

   Conf{韭菜} → {羊肉串} = {羊肉串,韭菜} / {韭菜} = C2 / C1 = 3/4 = 0.75

   Conf{韭菜} → {鸡杂} = {韭菜,鸡杂} / {韭菜} = C2 / C1 = 3/4 = 0.75

   Conf{韭菜} → {柠檬茶} = {韭菜,柠檬茶} / {韭菜} = C2 / C1 = 3/4 = 0.75

以上为K=3的Conf计算

至此,所有数据集的Conf值计算完毕!

*这里可能会有疑问,为什么没有K=1的Conf值?第一章里关于Conf的介绍讲到,Conf值是“信心值”。而K=1项集时,数据没有关联性,所以不存在Conf值,Conf值的计算最早只有在K=2时才开始

step6: 计算Lift

Lift({鸡翅,韭菜} → {鸡杂}) = Sup{鸡翅,韭菜,鸡杂} / Sup{鸡翅,韭菜} * Sup{鸡杂} = 0.5 / 2/3 * 2/3 = 0.5 / 0.44 = 1.136

Lift({鸡翅,鸡杂} → {韭菜}) = Sup{鸡翅,韭菜,鸡杂} / Sup{鸡翅,鸡杂} * Sup{韭菜} = 0.5 / 0.5 * 0.667 = 1.497

Lift({鸡翅,韭菜} → {柠檬茶}) = Sup{鸡翅,韭菜,柠檬茶} / Sup{鸡翅,韭菜} * Sup{柠檬茶} = 0.5 / 0.667 * 0.667 = 1.124

Lift({柠檬茶,韭菜} → {鸡翅}) = Sup{鸡翅,韭菜,柠檬茶} / Sup{柠檬茶,韭菜} * Sup{鸡翅} = 0.5 / 0.5 * 0.667 = 1.497

以上为三阶Lift计算,即:购买产品A和B是否会对C有影响。

以此类推,可继续计算二阶Lift的所有结果,以得出产品A对B是否有购买影响。

由于Lift为【提升度】通过所有Lift的计算,对Lift < 1的结果,以及对应的Sup,Conf作废弃处理,即:此Sup和Conf均不具备参考性

篇幅受限,K=2的Lift值将不计算,读者可以自己动手试试

通过以上演算,我们可以得出以下结论:

结论1: 购买鸡翅,韭菜的客人大概率会买鸡杂

结论2: 购买鸡翅,鸡杂的客人有较高的概率会买韭菜

结论3: 购买鸡翅,韭菜的客人有大概率会买柠檬茶

结论4: 购买柠檬茶,韭菜的客人有较高概率会买鸡翅

请记住:Sup、Conf、Lift都不能单独采信,若要算法做出精准决策时,需要3个关键值均达到要求。且不同场景下,3个关键值大小的设置,会极大程度上影响算法做出的决策!

至此,我们已经通过一个简单的小例子,展示了Apriori算法的能力。下一章我们将把本章的算法思想通过代码实现!