关联规则项目[数据挖掘]关联规则挖掘

废话就不多说了,开始。。。

       联关则规(association rule)是据数中所含蕴的一类要重法则。联关则规发掘的目标是在据数项目中找出有所的并发关系(cooccurrence relationships),这类关系也称为联关(association)。联关则规发掘的经典应用是购物篮(Market Basket), 联关则规发掘并没有斟酌客户购置商品时的序顺。

      在分析联关则规发掘法算前,我们先懂得一些相干的观点。

      联关则规的基本观点

      联关则规发掘问题常通可以表述为:I={i1, i2, …, im}是一个项目(Item)合集,T={t1,t2, …, tn} 是一个事务(Transaction)合集,其中个每事务ti是一个项目合集, 并且满意ti属于I。

      一个联关则规是一个如下式形含蕴的关系X—> Y, 其中X是I的真子集,Y也是I的真子集,并且X∩Y=Ф, X 或 Y是一个项目的合集, 称作项集(ItemSet),并且X为前件,Y为后件。

      如果项集X是事务T的子集,X在T中的支撑数计(表现为X.count)是T中含包X的事务目数。

     支撑度(Support):定义为 supp(X) = X.count / count(D) = P(X)

     置信度:一条则规X—> Y的置信度指的是“既含包了X又含包了Y的事务数量占有所含包了X的事务的百分比”,可以作看是件条率概P(Y|X)

     置信度定义为定义为 conf(X->Y) = supp(X ∪ Y) / supp(X) = P(Y|X)。

     候选集(Candidate itemset):通过向下合并得出的项集。定义为C[k]。

     繁频集(Frequent itemset):支撑度大于即是特定的最小支撑度(Minimum Support/minsup)的项集。表现为L[k]。注意,繁频集的子集一定是繁频集。

        晋升比率(晋升度Lift):lift(X -> Y) = lift(Y -> X) = conf(X -> Y)/supp(Y) = conf(Y -> X)/supp(X) = P(X and Y)/(P(X)P(Y))  

    

     支撑度表现一个事物生发的率概, 而置信度表现两个事物的联关强度。

   

      联关则规发掘的目标:给定一个事务集T,联关则规发掘是指"找出T中有所满意支撑度和置信度分离高于一个用户指定的最小支撑度(minsup)和最小置信度(minconf)的联关则规"

         Apriori法算(演绎法算)

    联关则规发掘法算的计设可以分解为两个子问题:

    

    

1.生成有所繁频项目集:即找到有所支撑度大于最小支撑度的项集(Itemset)。
    每日一道理
古人云:“海纳百川,有容乃大。”人世间,不可能没有矛盾和争吵,我们要以磊落的胸怀和宽容的微笑去面对它 。哈伯德也曾说过:“宽恕和受宽恕的难以言喻的快乐,是连神明都会为之羡慕的极大乐事。”让我们从宽容中享受快乐,从谅解中体会幸福吧!

                  2.从繁频项目集中生成有所可托联关则规:即从骤步1中选出置信度大于最小置信度的项。

  Apriori法算中定假项集I中的项目都采用了字典排序,这个很要重,因此在实现Apriori法算的时候,对项目的编码很要重。

  

frequent-itemset-gen(T)

    C[1]<--init-pass(T); //对事务集T行进第一轮搜索,生成1-候选集 F[1]<--{f|f属于C[1], supp(f) >=minsup} //从1-候选会合选出1-繁频集 for(k=2; F[k-1]<>NULL; k++) { C[k]<--candidate-gen(F[k-1]); for each t 属于 T { for each c属于C[k] { if c is contianed in t then c.count++; } } F[k]<--{c属于C[k]| supp(c) >= minsup} } return F<-- UF[k]

candidate-gen(F[k-1])

    C[k] <---NULL; //初始化k-候项选集 for all f1, f2 属于F[k-1] with f1={i1, i2, …, ik-2, ik-1} f2={i1, i2, …, ik-2, i`k-1} and ik-1 < i`k-1 //找出有所的“只有最后一项不同的k-1繁频项目对” { c<---{i1, i2, …, ik-2, ik-1, i`k-1}; //根据字典序合并两个k-1项,构成k候项选 C[k].add(c); for each (k-1)-subset s of c //将c中取人以k-1个项,成形k-1子项 { if(s 不属于 F[k-1]) { C[k].delete(c) } } } return C[k]

     

genRules(F)

    for (属于F的个每k-繁频项目 f[k], k>=2) { r1<---- gen 1-item rule of f[k] with confidence >= minConf and support<---f[k].count/n H[1].add({f[k]} -{ r1}); ap-genRules(f[k], H[1] ); }

    

    ap-genRules(f[k], H[m])

    

    if (k > m + 1 && H[m]<> NULL) { H[m+1] <--- candidate-gen(H[m]); for (each h[m+1] in H[m+1]) { conf = f[k].count / (f[k] - h[m+1]).count; if (conf >= minConf) { gen the rule(f[k] - h[m + 1]) -->h[m+1] with confidence = conf and support = f[k].support / n; } else { delete h[m + 1] from H[m+1]; } } ap-enRules(f[k], H[m+1]); }

    

文章结束给大家分享下程序员的一些笑话语录: 现在社会太数字化了,所以最好是有一个集很多功能于一身的设备!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值