关联规则的初学1

关联规则的学习:
关联规则是形如X->Y的蕴涵表达式,其中X和Y是不相交的项集,X∩Y= 空集 .
关联规则的强度可以用它的支持度(support)和置信度(confidence)度量.
支持度:Support(A->B) = P(A U B)
置信度:Confidence(A->B)= P(A | B) 置信度表示了这条规则有多大程度上值得可信

大多数关联规则挖掘算法通常采用一种策略:
(1)频繁项集产生 其目标是发现满足最小支持度阈值的所有项集(频繁项集frequent itemset)
(2)规则的产生 从上一步发现的频繁项集中提取所有高置信度的规则(强规则)

先验原理 如果一个项集是频繁的,则它的所有子集一定也是频繁的。相反,如果项集是非频繁的,则它的所有超集也一定是
非频繁的。
基于支持度的剪枝: 一旦发现{a,b}是非频繁的,则整个包含{a,b}超集的子图可以被立即剪枝。
反单调性 : 剪枝策略依赖于支持度度量的一个关键性质,即一个项集的支持度绝不会超过它的子集的支持度。
理解置信度、支持度的定义以及最小置信度和最小支持度。

以上的这几个概念要搞明白。首先我们来看,什么是规则?规则形如”如果…那么…(If…Then…)”,前者为条件,后者为结果。
关联规则挖掘用于寻找给定数据集中项之间的有趣的关联或相关关系。关联规则揭示了数据项间的未知的依赖关系,
根据所挖掘的关联关系,可以从一个数据对象的信息来推断另一个数据对象的信息。
例如购物篮分析。牛奶 ⇒ 面包 [支持度:3%,置信度:40%]
支持度3%意味3%顾客同时购买牛奶和面包。置信度40%意味购买牛奶的顾客40%也购买面包。
规则的支持度和置信度是两个规则兴趣度度量,它们分别反映发现规则的有用性和确定性。
关联规则是有趣的,如果它满足最小支持度阈值和最小置信度阈值。这些阈值可以由用户或领域专家设定。

我们要做的事情就是在数据集中找出所有支持度大于最小支持度,置信度大于最小置信度的关联规则。
关联规则的挖掘所面临的问题就是数据量大,则如何提高算法的效率就是我们主要要解决的问题。
另外一个概念就是频繁项集,支持度大于最小支持度的数据项集就是频繁项集。
由于置信度通过支持度就可以求出,所以我们的关键问题就是如何求支持度,也就是如何找到频繁项集。

Apriori算法给出了两个定律就是为了解决这个问题。
1、如果一个集合时频繁项集,那么它所有的子集都是频繁项集。很容易理解就是这个集合一起出现都大于最小支持度了,那它们单个出现肯定是大于。
2、如果一个集合不是频繁项集,那么它所有的超集都不是频繁项集。这个也容易理解,也就是跟上面反过来。

我们会发现这个算法有些不足。
我们要多次扫描数据集,另外生成的候选集也可能是相当的大。这下面就有人对算法进行改进,也就有我们下一章的算法FP-tree,
这个算法不用产生候选集支持生成频繁集,这个算法主要是构建一个频繁模式树。
FP-Tree算法:

1、扫描一下数据集,确定每一项的支持度,然后去掉非频繁集。
2、这个频繁集按照这个支持度从大到小进行排列。如果支持度一样的话就按照字典顺序排序
3、再次扫描数据集,构建第一个根节点,把每一个项集按照刚刚的顺序排序,再对每一个项集进行依次构建树的分支,这边构建分支的时候有一定的规则,
简单点说就是,构建分支,没有一直构建,已有节点,则该节点数加一。
4、最后把刚开始排序的频繁项集构建表头跟链表,这样就构建了FP-tree

 有转载别人的博客上讲的很好!

 

posted @ 2014-09-17 20:04  蜀山小侠  阅读(176)  评论(0)    收藏  举报