有趣的啤酒和尿布

“啤酒与尿布”的例子相信很多人都听说过吧,故事是这样的:在一家超市中,人们发现了一个特别有趣的现象,尿布与啤酒这两种风马牛不相及的商品居然摆在一起。但这一奇怪的举措居然使尿布和啤酒的销量大幅增加了。为什么有这么奇怪现象呢?看了资料后发现是因为美国妇女在丈夫回家前买尿布,然后丈夫顺手买了自己喜欢的啤酒,所以发生了这么有趣的事情。

关联分析

关联分析是一种在大规模数据集中寻找有趣关系的任务。这些任务有两种形式:频繁项集和关联规则。

频繁项集是经常出现在一块的物品的集合;

关联规则暗示的是两种物品之间可能存在很强的关系。

可以结合某家店的交易清单来说明这两个概念:

频繁集指的就是数据集中经常一起出现的组合,比如{啤酒、尿布、饼干}就是频繁集中的一个例子,而根据上表也可以找到{尿布 to 啤酒}的关联规则。而我们要通过关联分析大规模数据来发现数据之间的关系,如何定义关系的强弱呢?这时候我们用支持度(Support)和置信度(Confidence)来定义。

公式定义

支持度:数据集中包含该项集记录所占的比例,上例中{豆奶}的支持度=2/5,{啤酒,尿布}的支持度=3/5。

置信度:针对像频繁集数量>=2的情况,例如{啤酒,尿布},那么置信度=支持度({尿布,啤酒})/支持度(尿布)。

关联规则的一般步骤

找到频繁集;

在频繁集中通过可信度筛选获得关联规则。

Apriori算法假设

Apriori算法是生成频繁集的一种算法。Apriori原理有个重要假设,如果某个项集是频繁的,那么它的所有子集势必也是频繁的。如果一个项集是非频繁项集,那么它所对应的超集就全都是非频繁项集。

一个简单的例子

上图从左到右依次进行迭代,在C1中{D}出现次数为1,所以{D}不是频繁集,由于Apriori假设,{D}的超集也不是频繁集(eg:{D,A,C},{A,D},{C,D}),很明显看出这个集合的出现次数也是1;

筛选掉{D}来到C2,C2是对L1进行两两不重复组合的结果,然后再根据步骤1进行筛选非频繁集,不断迭代直至最后组合剩下一个时迭代结束。

将从步骤2得到频繁集通过计算得到关联规则,计算方式如下:

同理,

需要注意的是,b和a的位置不同代表着的意思不一样,就像是你买一次啤酒同时去买了十次尿布,和买了十次尿布只买了一次啤酒的感觉时很不同的。

所以利用置信度阈值(Confidence Threshold),将不满足的置信度(Confidence)都过滤掉,剩下的就是该数据集的强关联规则。

总结

传统的Apriori算法的计算量很大,当商品数据量大时基本上效率很低,所以后来有FP-Tree算法优化了该算法。

在电商平台中,常用的关联规则应用是单品推荐单品,即一般只需要知道频繁2项集即可。而且商品并不是全部平等销售的,组合、搭售、买赠、企业采购等订单都会影响频繁集的生成,若仅用支持度衡量物品之间的关联性,很容易导致出现假性关联。

在关联规则中,因为支持度表示在历史中A和B同时购买的概率,置信度表示A推荐B的可信程度。由此可以采用提升度=支持度(Support)*置信度(Confidence )的方式来表示A推荐B而A和B同时购买的概率。这样相比于单纯使用支持度更全面,同时避免了支持度中等或置信度中等的关联规则被淘汰。

生动理解关联规则——Apriori算法相关推荐

  1. php关联规则,如何理解关联规则apriori算法

    理解关联规则apriori算法:Apriori算法是第一个关联规则挖掘算法,也是最经典的算法,它利用逐层搜索的迭代方法找出数据库中项集的关系,以形成规则,其过程由连接[类矩阵运算]与剪枝[去掉那些没必 ...

  2. apriori算法_机器学习(无监督学习)关联规则Apriori算法原理与python实现

    关联规则Apriori算法 1.关联规则概述 关联规则算法是在一堆数据集中寻找数据之间的某种关联,通过该算法我们可以对数据集做关联分析--在大规模的数据中寻找有趣关系的任务.这些关系可以有两种形式:频 ...

  3. 一步步教你轻松学关联规则Apriori算法

    一步步教你轻松学关联规则Apriori算法 (白宁超 2018年10月22日09:51:05) 摘要:先验算法(Apriori Algorithm)是关联规则学习的经典算法之一,常常应用在商业等诸多领 ...

  4. python数据分析 - 关联规则Apriori算法

    关联规则Apriori算法 导语 mlxtend实现Apriori算法 导语 关联规则: 是反映一个事物与其他事物之间的相互依存性和关联性 常用于实体商店或在线电商的推荐系统:通过对顾客的购买记录数据 ...

  5. 关联规则Apriori算法 python简单实现

    1.基础知识 本文章主要参看博客 :关联规则Apriori算法 这里只是本人对该博主的代码做了一个简单的修改,能成功运行. 啦啦啦,我只是一个小小的知识搬运工! 2.代码 #加载数据集 import ...

  6. 【数据挖掘实验】关联规则——Apriori算法

    一.实验项目名称: 关联规则--Apriori算法 二.实验目的与要求: 在软件方面:会用Clementine软件进行关联规则分析. 在理论方面:Apriori算法. 三.实验原理: 1.Aprior ...

  7. 【商业挖掘】关联规则——Apriori算法(最全~)

    目录 一.关联规则挖掘 二.Apriori-关联规则算法 三.Apriori算法分解-Python大白话式实现 步骤1: 外部库调用❀ 步骤2: 数据导入❀ 步骤3: 数据处理❀ 步骤4:输出所有Go ...

  8. 关联规则Apriori算法

    参考<[机器学习实战-python3]使用Apriori算法进行关联 分析>,< 使用Apriori进行关联分析(一)>,<使用Apriori进行关联分析(二)>, ...

  9. 关联规则—Apriori算法—FPTree

    文章目录 一.关联规则 1.1 概念 1.2 示例 二.关联规则挖掘推论(Apriori 算法) 2.1 关联规则挖掘方法: 2.3 FP-growth 三.FP-growth原理 3.1 生成项头表 ...

最新文章

  1. ibatis迁移到mybatis3
  2. node-inspector 在chrome里调试node代码
  3. 把数据存入excel文件_Python从原Excel表中抽出数据存入同一文件的新的Sheet(实例53)...
  4. 这一大波电子“艺术”图,美翻了!
  5. java tls 实例_grpc加密TLS初体验(go、java版本)
  6. Linux 搜索文件
  7. python 描述器 详解_深入解析Python中的descriptor描述器的作用及用法
  8. r roc曲线 语言_R语言系列6:生存分析中多重时间依赖性ROC曲线绘制 timeROC
  9. 第18章 Redis数据结构常用命令
  10. UE4 Slate七 Slate本地化, UE4编辑器如何做的本地化
  11. Proteus仿真STM32F103R6(一)
  12. matlab学习笔记-绘图
  13. 多序列比对要多久时间_ClustalW----多序列比对分析(一)
  14. (P24)管道:管道的读写规则
  15. 程序员天梯排行榜,你在哪一级?
  16. 成都旅游业小程序开发,旅游业的发展前景
  17. 学生信息结构体数组拷贝和排序(结构体,结构体数组,结构体指针)
  18. 宏碁笔记本电脑产品质保说明
  19. 维修S120西门子服务器,A5E00158835 6SL3352-1AG37-4DA1 S120 西门子 变频器驱动板
  20. 云计算 刘鹏 第二版 pdf共享

热门文章

  1. 微信小程序真机无法发送网络请求or网络错误解决方法
  2. 流利阅读12.20 Angry young women: A new generation of activists is challenging misogyny
  3. NRF52832学习笔记(19)——TWI(I2C)接口使用
  4. ORACLE审计管理
  5. 爬取NBA30支球队“现役球员信息”,分别存储至txt、excel、mysql数据库!
  6. 第五章:广度优先搜索
  7. 抖音短视频账号矩阵系统源码/技术开发搭建私有部署
  8. 直播app系统源码通过CSS液体实现加载动画
  9. vb数据库编程(二)--数据控件
  10. Python——批量获取某宝商品价格