开发者学堂课程【高校精品课-北京理工大学-数据仓库与数据挖掘(上):频繁项集的压缩表示】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/921/detail/15638
频繁项集的压缩表示
在前面的章节中,我们已经向大家介绍了如何从事务数据集中挖掘频繁项集,但是如果我们的项集数目比较多,我们的事物数目比较多,我们得到的频繁项集的数目比较多的时候,我们就不可能把所有的频繁项集一一枚举出来,那么这个时候我们就需要频繁项集的压缩表示。我们首先来看一下最大频繁项集,最大频繁项集集合是我们频繁项集的压缩表示,
最大频繁项集的定义。
一个项集如果是最大频繁项集,它必须满足两个条件,第一个首先他自己必须是频繁项集,第二个就是它的所有直接超集没有一个是频繁的。我们可以在我们由 ABCDE 构成的频繁空间中去发现这样一个项集空间中,我们的黑色阴影部分代表的是非频繁项集,而我们白色的项集代表的是频繁项集。对于我们的项集 AD,它就是一个最大频繁项集,因为它的超级是不频繁的。我们现在向大家举例说明为什么最大频繁项集是所有频繁项集的压缩表示。
比如对于我们 PPT 上的这样一张表,它展示的是由A1到 A10, B1到 B10 C1到 C10,一共30个相组成的事物的二元表示。那么对于这样的一个事物数据集,我们首先设它的最小支持度计数为5,当最小支持度为5的时候,那么我们可以看到我们的最大的频繁项集是 F,那么由他推出的所有的频繁项集也是F。
那如果我们降低我们的支持度计数阈值。假设我们的支持度阈值是四,那么根据最大频繁项集的定义,我们可以得到我们最大频繁项集集合是 EF 和 G。那么我们所有的频繁项集就是由 EF 的子集和 G 组成,那EF的子集包含 EF、E、F。所以我们的所有的频繁项集就是 EF、E、F和G。
我们进一步降低我们的支持度阈值。当我们的支持度阈值设置为三的时候,我们最大频繁项集的集合就是由CDEF和G组成,那么通过最大频繁项集我们可以推出所有的频繁项集也就是 CDEF 的子集和 G 组成的集合。
虽然我们的最大频繁项集能够压缩表示所有的频繁项集,但是最大频繁项集是不能够提供所有频繁项集的支持度信息的。
那下面我们就向大家介绍 B 频繁项集。首先我们来看一下什么是B项集,一个项目如果他是 X,那么必须满足以下一个条件,也就是它的所有的直接超集的支持度都和他不相同,也就意味着他所有直接超集的支持度计数都低于这个X。
那B频繁项集就指的是这个x项集它不仅是B的,而且是频繁的,对于B频繁项集和最大频繁项集的关系,我们可以通过这个图看出,首先B频繁项集是所有频繁项集和B频繁项集的交集,最大频繁交集是我们B频繁项集的子集,也就是说,B频繁项集不仅能够压缩表示所有的频繁项集,它还提供了所有频繁项集。
我们通过一个例子向大家进行解释。假设我的事物集只有两个事物组成,A1 A100 1和 A50。
设最小支持度阈值为一,那么我们可以得到我们的最大频繁项集是 A1到 A10,它的支持度为一,我们可以得到我们的B频繁项集集合是 A1 到 A10,它的支持度为一,A1 到 A50他的支持度为二。假设我们只知道最大频繁项集,那么根据最大频繁项集集合,我们可以列出所有的频繁项集,但是我们频繁项集的支持度信息是缺失的。
比如像项集 A2,A50,我只知道他是频繁的,但是他的支持度信息是多少我是不清楚的。
但是如果我知道B频繁项集集合,那么对于我的 A2A50 这个项集,我不仅知道他是频繁的,而且我还知道他的支持度信息为为二,因为它是包含在 A1A50 这个项集中的,所以说对于 B 频繁项集来说,它是我们频繁项集的完整的压缩表达。




