Python实现
之前已经在关联分析(1):概念及应用和关联分析(2):Apriori产生频繁项集介绍了关联分析相关知识及Apriori算法原理,此处不再赘述,直接开始Python代码实现。
通过使用efficient_apriori包的apriori(data, min_support, min_confidence)函数可帮我们快速实现关联分析,其中data是要进行分析的数据,要求list类型,min_support表示最小支持度,min_confidence 表示。 数据情况 本例中我们使用的是UCI机器学习库上下载的美国众议院议员投票记录数据,数据共有16列,首先对数据情况进行基本展示:
具体代码 本例中我们设置最小支持度为0.3,最小置信度为0.9,使用时可根据情况调整。
import pandas as pdimport numpy as npimport operatorfrom efficient_apriori import apriori#读取数据data = pd.read_csv(\"voting-records.csv\",header=None)#得到频繁项集及关联规则itemsets, rules = apriori(data.values.tolist(), min_support=0.3, min_confidence=0.9,max_length=10)#分别根据置信度、支持度、提升度对规则进行排序confidence = dict()support = dict()lift = dict()for rule in rules: confidence[rule] = rule.confidence support[rule] = rule.support lift[(rule)] = rule.lift #rule.lhs,rule.rhs可用作提取规则的前件、后件rules_sortbycon = sorted(confidence.items(),key=operator.itemgetter(1),reverse = True)rules_sortbysup = sorted(support.items(),key=operator.itemgetter(1),reverse = True)rules_sortbylift = sorted(lift.items(),key=operator.itemgetter(1),reverse = True)
2
结果
根据上方代码,我们可以选择根据置信度、支持度或提升度输出相应规则,以置信度为例,得到的结果如下: