当前位置: 首页 > 科技观察

Python基本原理:FP-growth算法的构建

时间:2023-03-15 16:14:15 科技观察

相对于Apriori算法,FP-growth算法只需要遍历数据库两次就可以高效地找到频繁项集。对于搜索引擎公司来说,他们需要通过查看互联网上使用的词来找到经常一起出现的词。因此,需要一种能够高效地找到频繁项集的方法,而FP-growth算法可以完成这一重要任务。FP-growth算法基于Apriori原理,通过将数据集存储在FP(FrequentPattern)树中来寻找频繁项集。FP-growth算法只需要扫描两次数据库,而Apriori算法需要为每个潜在的频繁项集扫描一次数据集,因此FP-growth算法是高效的。FP算法发现频繁项集的过程为:(1)构造FP树;(2)从FP树中挖掘频繁项集。FP表示频繁模式,通过链接将相似的元素连接起来,可以看到连通的元素将交易数据表中每笔交易对应的数据项按照支持度排序后,将每笔交易中的数据项插入树中NULL作为根节点降序排列,同时在每个节点中,记录该节点的支持度。假设有一个交易数据样本,构造FP树的步骤如下:结合Apriori算法中的最小支持度阈值,这里定义最小支持度为3,结合上表中的数据,那些不满足最低支持Required的不会出现在***FP树中。以此为基础构造FP树,用一个头指针表指向给定类型的第一个实例,快速访问FP树中的所有元素。带头指针的FP树构造如图:结合绘制的头指针表FP树对表中的数据进行过滤排序如下:对数据项进行过滤排序后,可以构造FP树,从NULL开始,不断向其添加过滤排序后的频繁项集。其过程可以表示为:这样就构建出了FP树对应的数据结构,现在就可以构建FP树了。FP树的构造函数可以参考Python源码。在运行上面的例子之前,需要一个真实的数据集,一个自定义的数据集与之前的数据结合。这样,FP树就构建好了,接下来就是用它来挖掘频繁项集了。