AI智能
改变未来

关联分析(5):Apriori Python实现

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

结果

     根据上方代码,我们可以选择根据置信度、支持度或提升度输出相应规则,以置信度为例,得到的结果如下:

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » 关联分析(5):Apriori Python实现