什么是Apriori 算法 Apriori算法步骤详解

发布:2022-11-07 15:08:06
阅读:4131
作者:网络整理
分享:复制链接

Apriori算法用于关系数据库的频繁项集挖掘和关联规则学习,简单的说就是找出数据中频繁出现的数据集合。Apriori算法在没有找到成功扩展时就会停止。

使用广度优先搜索和哈希结构,Apriori算法可以有效地计算候选项目集。它从长度为k-1的项目集生成长度为k的候选项目集。再根据向下闭合,候选集包含所有频繁的k长度项集。之后,它扫描事务数据库以确定候选中的频繁项集。

Apriori算法步骤详解

以下是算法的主要步骤:

1.计算数据库中项目集(大小k=1)的支持度,支持度是项目集出现的频率。

2.在算法的第一次迭代中,每个项目都被视为1项集候选。该算法将计算每个项目的出现次数,这称为生成候选集。

3.假设有一些最小支持min_sup,确定其出现满足min sup的1项集的集合。只有那些计数大于或等于min_sup的候选者才会被提前用于下一次迭代,而其他的则被修剪。

4.通过消除支持小于给定阈值的项目来修剪候选集。

5.接下来,发现具有min_sup的2项集频繁项。为此,在连接步骤中,通过将项目与其自身组合生成2项集。

6.加入频繁项集,形成大小为k+1的集合,并重复上述集合,直到不能形成更多的项集。当形成的集合具有小于给定支持的支持时,就会发生这种情况。

7.使用min-sup阈值修剪2项集候选。现在该表将有2个仅带有min-sup的项目集。

8.下一次迭代将使用连接和修剪步骤形成3个项目集。此迭代将遵循反单调属性,其中3项集的子集,即每个组的2项集子集落在min_sup中。如果所有2项集子集都是频繁的,则超集将是频繁的,否则将被修剪。

9.下一步将通过将3项集与自身连接来制作4项集,如果其子集不符合min_sup标准,则进行修剪。当达到最频繁项集时算法停止。

提高Apriori算法效率的方法

以下5种方法可用于提高Apriori算法的效率。

1.基于哈希的技术:使用基于哈希结构来生成k项集及其相应的计数。它使用哈希函数来生成表。

2.事务减少:此方法减少迭代中扫描的事务数量。不包含频繁项的事务被标记或删除。

3.分区:这种方法只需要两次数据库扫描来挖掘频繁项集。对于任何可能在数据库中频繁出现的项集,它应该在数据库的至少一个分区中频繁出现。

4.抽样:该方法从数据库中随机抽取一个样本,然后在样本中搜索频繁项集。

5.动态项集计数:这种技术可以在扫描数据库期间,在数据库的任何标记的起点添加新的候选项集。

‍尽管Apriori算法是关联规则学习算法中最简单易懂的算法,但它有个非常大的缺陷,因为Apriori算法是详尽的,大量时间被浪费在候选生成,导致Apriori算法在大型数据库中会变得低效和缓慢。

扫码进群
微信群
免费体验AI服务