关联规则挖掘算法之Apriori算法和ECLAT算法

发布:2023-02-09 11:14:18
阅读:8110
作者:网络整理
分享:复制链接

关联规则试图找到达到给定支持度和置信度的两个或多个元素之间的某些规律。而频繁项集是一组经常一起出现并达到预定义的支持度和置信度的项集。因此我们可以通过频繁项集找到关联规则。

关联规则挖掘算法

Apriori算法试图从数据库中的事务中学习关联规则,即逻辑关系。目标是找到频繁出现的项目集。它分两步工作,即“加入”和“修剪”,它们迭代执行,即连续执行几次。

加入:在此步骤中,形成了集合K的项集。K代表重复步骤。

修剪:在此步骤中,所有未达到预定义支持度阈值并因此被认为是稀有的项集都将被删除。

Apriori算法利用了所谓的反单调性。简单来说就是如果一个由若干元素组成的项集没有达到最小支持度,那么所有的超集(也没有达到最小支持度。

在每次新的迭代中,项集都会扩展一个元素,并再次执行“加入”和“修剪”步骤。如果在一次迭代中没有找到新的项集,则算法终止,但只保留上一步的项集。

Apriori算法是关联规则挖掘的基础算法,ECLAT则是Apriori算法的替代方法。

与Apriori相比,Eclat算法对内存的要求较低,因为它使用垂直布局(DFS方法)。

Eclat算法不需要重复扫描数据来计算支持度,因此比Apriori算法更快。

在生成数据库的每个阶段,Eclat算法使用当前生成的数据集来学习频繁项,而不像Apriori那样反复扫描原始数据库。由于Eclat只扫描一次数据库,因此它比Apriori算法快得多。

在小型或中型数据集中可以使用ECLAT,它比Apriori更快。然而,如果是大型数据集的话,Apriori算法表现得更好。因为ECLAT算法比Apriori算法消耗更多的内存空间。

ECLAT、FP Growth和Apriori对比

有两种比Apriori算法更快的替代方法,它们是最先进的:一种是FP Growth,另一种是ECLAT。在FP Growth和ECLAT之间,在执行时间方面没有明显的赢家:它将取决于不同的数据和算法中的不同设置。

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