Frequent Pattern mining

Frequent pattern mining的几种方式:

    1.基于模式完整性的(completeness of patterns)

    2.基于和规则集有关抽象层次的(levels of abstraction)

    3.基于和规则有关维数的(number of data dimensions)

    4.基于规则值类型的(types of value)

    5.基于规则种类的(kinds of rules)

    6.基于模式种类的(kinds of patterns)


基础算法:

Apriori算法:最基本的frequent itemsets挖掘算法(单抽象层,单数据维,boolean值类型)

    方法:迭代,用k-itemsets来找到(k+1)-itemsets。

    步骤:逐次找L1,L2,L3...Lk。

    为了减少搜索空间,优先原则(Apriori property)被引入:

       -所有频繁集的非空子集必然是频繁集,或者说,所有非频繁集的超集都不会是频繁集。

    如何应用Apriori property:包括两个操作:合并(join)和剪枝(prune)。以L(k-1)寻找Lk为例子

        1.合并,为了寻找到Lk,需要对L(k-1)进行自连接,以找出k-itemsets的候选者(candidate),用Ck表示。对L(k-1)中的任意一个元素(某一个频繁项目集)li,通常li中的每个项目li[x]是已经词法排序好的。进行L(k-1)joinL(k-1),其中任意两个li和lj可以进行连接的条件是:li[1]=lj[1],li[2]=lj[2],li[3]=lj[3]...,li[k-2]=lj[k-2],li[k-1]<lj[k-1](第k-1项不相等,否者出现多余)。合并的结果是li[1],li[2],...li[k-2],li[k-1],lj[k-1]。

        2.剪枝:候选者集合Ck是Lk的超集,Lk的所有元素必然来自Ck。所以遍历Ck可以找到Lk的全体元素。但是这样计算量巨大,所以利用Apriori property来减少Ck的规模。即所有非频繁的(k-1)-itemset的超集k-itemset都不会属于频繁项目集集合Lk。所以可以对Ck的每个k-itemset元素进行判断,只要Ck中某个k-itemset的任一子集(k-1)-itemset不属于L(k-1),就说明这个候选项不可能成为频繁项目集Lk的一员,要被抛弃。


由频繁项目集l中产生规则rules:

    (

        association rule A=>B 必须满足的条件:

        1.A∩B=∅

        2.support(A⇒B) = P(A ∪ B) >min_sup

        3. confidence(A⇒B) = P(B|A) =  support_count(A ∪ B)/ support_count(A)>min_conf

        )

    对某一个频繁项目集l,它可以产生多条关联规则,产生的方式是求出l的每一个非空子集s,s=>(l-s)的条件是support_count(l)/support_count(s)>min_conf。因为l是来自频繁项目集集合L的,所以它必然满足 P(l) >min_sup。


评价:

    Apriori虽然candidate 产生并且检测(连接并剪枝)的方式大大减少了候选者集合C的规模,但是它仍然有两个弊病:(1)会产生大量的候选者集(2)需要不断的扫描数据库check候选者集合C来求得频繁项目集。


是否有不产生candidate集合的方法挖掘完整的频繁项目集集合呢?

    Frequent-pattern growth(FP-growth)就是这样一种算法。

    FP-growth基本思想是分支(divide and conquer),首先,将代表频繁项目(frequent items)的数据库压缩到一颗FP-tree中,这棵FP-tree仍然保留了完整的项目集关联信息。然后,它将这种被压缩的数据库(FP-tree)分割成一组条件数据库(一种特殊的投射数据库),每一个条件数据库都和一个频繁项目或者模式碎片关联(pattern fragment),然后分别挖掘之。


转载于:https://my.oschina.net/ccrow/blog/189990

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值