前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【机器学习】--关联规则算法从初识到应用

【机器学习】--关联规则算法从初识到应用

作者头像
LhWorld哥陪你聊算法
发布2018-09-13 15:02:52
5280
发布2018-09-13 15:02:52
举报

一、前述

  关联规则的目的在于在一个数据集中找出项之间的关系,也称之为购物蓝分析 (market basket analysis)。例如,购买鞋的顾客,有10%的可能也会买袜子,60%的买面包的顾客,也会买牛奶。这其中最有名的例子就是"尿布和啤酒"的故事了。

二、相关概念

交易集:包含所有数据的一个数据集合,数据集合中的每条数据都是一笔交易

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

关联关系:(association rules)暗示两种物品之间可能存在很强的关系。

项:交易集中的每个商品被成为一个项

模式/项集(ItemSet):项组合被成为模式/项集

支持度(Support):个项集在在整个交易集中出现的次数/出现的频度,比如:Support({A,C})=2表示A和C同时出现的次数是2次 最小支持度:交易次数达到最小支持度的情况下,该项集才会被计算 频繁项集:如果项集的支持度大于等于最小支持度,那么改项集被成为频繁项集,即出现的比较频繁。

置信度(Confidence):关联规则左件和右件同时出现的频繁程度,该值越大,表示同时出现的几率越大。

关联规则:LHS --- RHS(confidence) -----> 如果客户购买了左件(LHS),也可能购买右件(RHS),购买的置信度为confidence

比如上面的{尿布,葡萄酒}就频繁出现,他们之间可能存在一些关系,辣么,如何来确定是否是频繁项集呢?主要是依靠支持度和可信度。

首先我们来看,什么是规则?规则形如"如果…那么…(If…Then…)",前者为条件,后者为结果。例如一个顾客,如果买了可乐,那么他也会购买果汁。

如何来度量一个规则是否够好?有两个量,置信度(Confidence)和支持度(Support)

假设有如下表的购买记录。

整理后如图:

上表中横栏和纵栏的数字表示同时购买这两种商品的交易条数。如购买有Orange的交易数为4,而同时购买Orange和Coke的交易数为2。

置信度表示了这条规则有多大程度上值得可信。设条件的项的集合为A,结果的集合为B。置信度计算在A中,同时也含有B的概率。即Confidence(A==>B)=P(B|A)。例 如计算"如果Orange则Coke"的置信度。由于在含有Orange的4条交易中,仅有2条交易含有Coke.其置信度为0.5。

支持度计算在所有的交易集中,既有A又有B的概率。例如在5条记录中,既有Orange又有Coke的记录有2条。则此条规则的支持度为2/5=0.4。现在这条规则可表述为,如果一个顾客购买了Orange,则有50%的可能购买Coke。而这样的情况(即买了Orange会再买Coke)会有40%的可能发生。支持度是针对项集来说的,因此可以定义一个最小支持度,而只保留满足最小支持度的项集。

关联规则要求项集必须满足的最小支持阈值,称为项集的最小支持度(Minimum Support),记为supmin支持度大于或等于supmin的项集称为频繁项集,简称频繁集,反之则称为非频繁集。通常k-项集如果满足supmin,称为k-频繁集,记作Lk。关联规则的最小置信度(Minimum Confidence)记为confmin,它表示关联规则需要满足的最低可靠性。

三、Apriori算法

1、原理

如果某个项集是频繁的,那么它的所有子集也是频繁的。该定理的逆反定理为:如果某一个项集是非频繁的,那么它的所有超集(包含该集合的集合)也是非频繁的。Apriori原理的出现,可以在得知某些项集是非频繁之后,不需要计算该集合的超集,有效地避免项集数目的指数增长,从而在合理时间内计算出频繁项集。

2、实现

Apriori算法是发现频繁项集的一种方法。Apriori算法的两个输入参数分别是最小支持度和数据集。该算法首先会生成所有单个物品的项集列表->接着扫描交易记录来查看哪些项集满足最小支持度要求,其中不满足最小支持度的集合会被去掉->然后对剩下的集合进行组合以生成包含两个数据集的项集->接着重新扫描交易记录,去掉不满足最小支持度的项集->该过程重复进行直到所有项集都被滤掉。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档