今天看《python数据分析与挖掘实战》一书中讲到关联规则这块算法,第一次看很懵,自己也花了点时间百度找实例理解。下面记录自己的理解,为了自己复习用。下面写的不是很详细,不懂的概念可以查看我最底下的参考链接。
关联规则简单的理解就是从一个数据集中找出满足我们最初给定的最小支持度和最小置信度的所有关联规则。(大于最小的支持度和置信度)。具体实现分为两步:a、生成频繁项集:找出所有满足最小支持度的项集,找出的这些项集合称为频繁项集;b、生成规则:在上一步频繁项集的基础上生产满足最小置信度的规则,即为强规则。但是呢,问题在于a中最初生成的项集合太多了筛选费时,一个数据为n可以组合出2^(n-1)个。而b呢是在a完成后的基础上进行,所以费时主要是在筛选a中满足条件的项集这一步上。基于这个问题就引出了Apriori算法作用。
Apriori算法作用就是为了减少频繁项集的生成(上述中的a步)时间,尽早的消除一些完全不可能的频繁项集的集合。那么关键问题来了,怎么才能被Apriori算法认为是属于一些完全不肯能的频繁项集呢。下面就要根据Apriori算法的两条性质:1、频繁项集的所有非空子集也必须是频繁项集,2、如果一个集合不是频繁项集,则它的所有超集都不是频繁项集(我的理解:其实2就是1的反推得到的)。具体实现步骤呢在这本书上的p116页。
开始看这文字很难受,后面找了个实现步骤图,简单明了还便于理解:
到这里我们就计算出频繁项集了,完成了关联挖掘的第一步,后面就是每个规则的置信度计算(p119)。由支持度和置信度得出关联规则即可。下面贴张书上的例子图。计算很简单
第三图片和一些定义参考来源:
https://blog.youkuaiyun.com/PeixinYe/article/details/80155346,
https://www.cnblogs.com/fengfenggirl/p/associate_apriori.html