Apriori2(关联规则)

本文探讨了如何利用频繁项集挖掘关联规则,并详细解释了支持度与可信度的概念。通过实例展示了如何计算支持度并据此生成关联规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上一节我们讨论了频繁项集,这一节我们就用频繁项集挖掘关联规则,频繁项集有支持度的指标,关联规则则有可信度的指标,关于支持度一看很类似贝叶斯公式:{尿布,啤酒}/{尿布}这就算出了尿布的支持度。接下来就来看一看
def generateRules(L, supportData, minConf=0.7): 
    bigRuleList = []
    for i in range(1, len(L)):
        for freqSet in L[i]:
            H1 = [frozenset([item]) for item in freqSet]
            if (i > 1):
                rulesFromConseq(freqSet, H1, supportData, bigRuleList, minConf)
            else:
                calcConf(freqSet, H1, supportData, bigRuleList, minConf)
    return bigRuleList         

def calcConf(freqSet, H, supportData, brl, minConf=0.7):
    prunedH = [] 
    for conseq in H:
        conf = supportData[freqSet]/supportData[freqSet-conseq] 
        if conf >= minConf: 
            print freqSet-conseq,'-->',conseq,'conf:',conf
            brl.append((freqSet-conseq, conseq, conf))
            prunedH.append(conseq)
    return prunedH

def rulesFromConseq(freqSet, H, supportData, brl, minConf=0.7):
    m = len(H[0])
    if (len(freqSet) > (m + 1)): 
        Hmp1 = aprioriGen(H, m+1)
        Hmp1 = calcConf(freqSet, Hmp1, supportData, brl, minConf)
        if (len(Hmp1) > 1):   
            rulesFromConseq(freqSet, Hmp1, supportData, brl, minConf)
            
上面第一个函数有三个参数,频繁项集列表,包含那些频繁项集支持数据的字典,最小可信度。这里首先是只获取两个以上元素的集合。如果只有两个就使用第二个函数,如果有多个就用第三个函数,先来看第二个函数,这里的支持度数据是从前面函数中返回的所以这里可以很简单的算出可信度的值。如果可信度大于最小可信度就输出。第三个函数用来计算元素个数较多的情况,函数先计算出H中的频繁项集的大小,如果频繁项集太大就进行进一步合并,用第二个函数算出可信度,按照这个规则进行迭代处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值