原理:
根据频繁项集找关联规则,如有一个频繁项集{豆奶,莴苣},那么可能有一条关联规则是豆奶->莴苣,即一个人购买了豆奶,则大可能他会购买莴苣,但反过来一个人购买了莴苣,不一定他会购买豆奶,频繁项集使用支持度量化,关联规则使用可信度或置信度量化。一条规则P->H的可信度定义为支持度(P|H)/支持度(P)。(注意:python中'|'表示并集,数学中'U'表示并集)
网络示意图:
该图为频繁项集{0,1,2,3}的关联规则网络示意图,阴影区域是第可信度的规则,如果发现0,1,2->3是低可信度的,则以3为后件的规则可信度也会低。因此,先从一个频繁项集出发(单个元素是没有关联规则的,因此从两个元素的频繁项集出发),创建一个规则列表,该规则右边只包含一个元素,然后对这些规则测试;然后合并所有规则创建新的关联列表,该规则右边包含两个元素,以此类推。
代码:
def generateRules(L,supportData,minConf=0.5):