1. 频繁项集的评估标准
什么样的数据才是频繁项集呢?也许你会说,这还不简单,肉眼一扫,一起出现次数多的数据集就是频繁项集吗!的确,这也没有说错,但是有两个问题,第一是当数据量非常大的时候,我们没法直接肉眼发现频繁项集,这催生了关联规则挖掘的算法,比如Apriori, PrefixSpan, CBA。第二是我们缺乏一个频繁项集的标准。比如10条记录,里面A和B同时出现了三次,那么我们能不能说A和B一起构成频繁项集呢?因此我们需要一个评估频繁项集的标准。
常用的频繁项集的评估标准有支持度,置信度和提升度三个。
支持度就是几个关联的数据在数据集中出现的次数占总数据集的比重。或者说几个数据关联出现的概率。如果我们有两个想分析关联性的数据X和Y,则对应的支持度为:
该算法的核心 思想就是对目标事务库采用逐层迭代搜索的方式进行挖掘k 阶频繁项目集,直至找 到最高阶的频繁项目集即止,最后通过获得的频繁项目集进行关联规则挖掘,从 而实现挖掘目标数据间关联关系的最终目标。 Apriori 算法的主要策略是根据预先设定的最小支持度获取目标事务库中的全部频繁项目集,再根据频繁项目集快速获取出关联规则,详细的挖掘步骤如下所 示: 步骤一:首次遍历目标事务库,找出 1 阶频繁项集 L1。 步骤二:将 )2( k1 kL 采用自身连接生成k 阶候选项目集Ck 。 步骤三:根据频繁项目集的任一子集全部都为频繁项目集,可以对k 阶候选项 目集 Ck 进行剪枝。假设 Ck 1 是 Ck 的任意一个 k )1( 阶子集,若 LC kk 11 ,则 LC kk ,则该候选项目集肯定不是频繁的,可以直接将该候选项目集进行删除。 步骤四:循环步骤二、步骤三,直至不能得到更高阶的频繁项目集为止,在 得出的所有频繁项目集中计算出满足要求的关联规则,挖掘过程结束。 为了更直观地说明 Apriori 算法的挖掘步骤,将给出一个具体事例,简单起见, 假设事务库 D 有 5 条记录,具体内容如表 2.1 所示以及最小支持度为 2。
2.2.2 常见的 Apriori 算法改进策略
(1)基于事务压缩的方法 在对 Apriori 算法分析的基础上,可以得出 Apriori 算法具有如下性质和推论: 性质 1:如果存在一个项集是频繁项集,则其任一非空子集也必然是频繁项集 的。 推论 1:如果存在一个项集不是频繁项集,那么它的任意超集也肯定不会是频 繁项集。