关联规则算法学习—Apriori 分析
时间: 2023-06-15 22:06:12 浏览: 70
Apriori 算法是一种关联规则挖掘算法,用于在大规模数据集中查找频繁项集。该算法是基于频繁项集的性质:如果一个项集是频繁的,那么它的所有子集也是频繁的。Apriori 算法主要分为两个步骤:频繁项集的生成和关联规则的生成。下面我们来详细了解一下这两个步骤。
1. 频繁项集的生成
Apriori 算法的核心思想是利用先验知识来减少搜索空间。具体来说,我们可以利用 Apriori 原理:一个项集是频繁的,当且仅当它的所有子集都是频繁的。也就是说,如果一个项集不是频繁的,那么它包含的所有子集都不是频繁的,因此我们可以直接舍弃这个项集以及它的所有超集。这样可以减少搜索空间,提高算法效率。
具体来说,频繁项集生成的过程如下:
(1)生成所有的单个项集(即每个项只包含一个元素)。
(2)对于每个 k(k≥2)阶项集,从上一轮的频繁 (k-1) 阶项集中选取子集作为其前 k-1 个元素,生成新的 k 阶项集。
(3)扫描数据集,计算每个项集的支持度,筛选出支持度不低于设定阈值的频繁项集。
(4)不断重复步骤(2)和(3),直到无法生成新的频繁项集为止。
2. 关联规则的生成
在得到所有的频繁项集之后,我们需要根据这些项集生成关联规则。关联规则是指基于频繁项集之间的关系,推导出的形如 A→B 的规则,表示 A 和 B 之间存在某种关系。关联规则的生成过程如下:
(1)对于每个频繁项集 A,生成其所有的非空子集。
(2)对于每个非空子集 B,计算置信度 conf(A→B),如果 conf(A→B)≥设定阈值,则保留规则 A→B。
在计算置信度时,我们可以利用以下公式:
conf(A→B) = sup(A∪B) / sup(A)
其中 sup(A) 和 sup(A∪B) 分别表示项集 A 和项集 A∪B 在数据集中出现的次数。
总的来说,Apriori 算法是一种高效的关联规则挖掘算法,能够在大规模数据集中快速查找频繁项集和关联规则。但是,由于其需要扫描整个数据集多次,因此对于较大的数据集来说,算法的时间复杂度较高。