理解置信度、支持度的定义以及最小置信度和最小支持度。
这几个概念要搞明白。
我们要做的事情就是在数据集中找出所有支持度大于最小支持度,置信度大于最小置信度的关联规则。
关联规则的挖掘所面临的问题就是数据量大,则如何提高算法的效率就是我们主要要解决的问题。
另外一个概念就是频繁项集,支持度大于最小支持度的数据项集就是频繁项集。
由于置信度通过支持度就可以求出,所以我们的关键问题就是如何求支持度,也就是如何找到频繁项集。
Apriori算法给出了两个定律就是为了解决这个问题。
1、如果一个集合时频繁项集,那么它所有的子集都是频繁项集。很容易理解就是这个集合一起出现都大于最小支持度了,那它们单个出现肯定是大于。
2、如果一个集合不是频繁项集,那么它所有的超集都不是频繁项集。这个也容易理解,也就是跟上面反过来。
我们会发现这个算法有些不足。
我们要多次扫描数据集,另外生成的候选集也可能是相当的大。这下面就有人对算法进行改进,也就有我们下一章的算法FP-tree,这个算法不用产生候选集支持生成频繁集,这个算法主要是构建一个频繁模式树。
这个算法主要有如下步骤:
1、扫描一下数据集,确定每一项的支持度,然后去掉非频繁集。
2、这个频繁集按照这个支持度从大到小进行排列。如果支持度一样的话就按照字典顺序排序
3、再次扫描数据集,构建第一个根节点,把每一个项集按照刚刚的顺序排序,再对每一个项集进行依次构建树的分支,这边构建分支的时候有一定的规则,简单点说就是,构建分支,没有一直构建,已有节点,则该节点数加一。
4、最后把刚开始排序的频繁项集构建表头跟链表,这样就构建了FP-tree
下面就是挖掘。挖掘的主要步骤:
从刚刚构建的FP-tree的表头开始,按照每个频繁集的链接遍历,列出能够到达此项的所有前缀路径,然后去掉这个节点,找第二项的前缀路径,一直对每个项重复这个步骤。
算法的过程我看了一下大概是这个样子,具体使用证明还没有看,这边也就不写了。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:机器学习11关联规则 - Python技术站