前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >关联分析(5):Apriori Python实现

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

作者头像
三猫
发布2020-01-31 11:19:29
2.5K0
发布2020-01-31 11:19:29
举报
文章被收录于专栏:机器学习养成记

关联分析(3):Apriori R语言实现一文中,写了如何使用R语言进行关联分析,那在Python中如何实现呢?

1

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,使用时可根据情况调整。

代码语言:javascript
复制
import pandas as pd
import numpy as np
import operator
from efficient_apriori import aprior
#读取数据
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

结果

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

推荐文章

· Bagging算法(R语言)

· 静态爬虫与地址经纬度转换(python)

· 特征工程(一):前向逐步回归(R语言)

· 聚类(三):KNN算法(R语言)

· 小案例(六):预测小偷行为(python)

· ggplot2:正负区分条形图及美化

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习养成记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档