python 实现关联规则算法Apriori的示例


Posted in Python onSeptember 30, 2020

首先导入包含apriori算法的mlxtend库,

pip install mlxtend

调用apriori进行关联规则分析,具体代码如下,其中数据集选取本博客 “机器学习算法——关联规则” 中的例子,可进行参考,设置最小支持度(min_support)为0.4,最小置信度(min_threshold)为0.1,

最小提升度(lift)为1.0,对数据集进行关联规则分析,

from mlxtend.preprocessing import TransactionEncoder
from mlxtend.frequent_patterns import apriori
from mlxtend.frequent_patterns import association_rules
import pandas as pd

df_arr = [['苹果','香蕉','鸭梨'],
    ['橘子','葡萄','苹果','哈密瓜','火龙果'],
    ['香蕉','哈密瓜','火龙果','葡萄'],
    ['橘子','橡胶'],
    ['哈密瓜','鸭梨','葡萄']
    ]

#转换为算法可接受模型(布尔值)
te = TransactionEncoder()
df_tf = te.fit_transform(df_arr)
df = pd.DataFrame(df_tf,columns=te.columns_)

#设置支持度求频繁项集
frequent_itemsets = apriori(df,min_support=0.4,use_colnames= True)
#求关联规则,设置最小置信度为0.15
rules = association_rules(frequent_itemsets,metric = 'confidence',min_threshold = 0.15)
#设置最小提升度
rules = rules.drop(rules[rules.lift <1.0].index)
#设置标题索引并打印结果
rules.rename(columns = {'antecedents':'from','consequents':'to','support':'sup','confidence':'conf'},inplace = True)
rules = rules[['from','to','sup','conf','lift']]
print(rules)
#rules为Dataframe格式,可根据自身需求存入文件

输出结果如下:

from     to sup   conf   lift
0    (哈密瓜)    (火龙果) 0.4 0.666667 1.666667
1    (火龙果)    (哈密瓜) 0.4 1.000000 1.666667
2    (哈密瓜)    (葡萄) 0.6 1.000000 1.666667
3     (葡萄)    (哈密瓜) 0.6 1.000000 1.666667
4     (葡萄)    (火龙果) 0.4 0.666667 1.666667
5    (火龙果)    (葡萄) 0.4 1.000000 1.666667
6  (哈密瓜, 葡萄)    (火龙果) 0.4 0.666667 1.666667
7  (哈密瓜, 火龙果)    (葡萄) 0.4 1.000000 1.666667
8  (葡萄, 火龙果)    (哈密瓜) 0.4 1.000000 1.666667
9    (哈密瓜)  (葡萄, 火龙果) 0.4 0.666667 1.666667
10    (葡萄) (哈密瓜, 火龙果) 0.4 0.666667 1.666667
11    (火龙果)  (哈密瓜, 葡萄) 0.4 1.000000 1.666667

Process finished with exit code 0

以上就是python 实现关联规则算法Apriori的示例的详细内容,更多关于python 实现关联规则算法Apriori的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Google开源的Python格式化工具YAPF的安装和使用教程
May 31 Python
Python网络编程 Python套接字编程
Sep 13 Python
Python简单生成随机姓名的方法示例
Dec 27 Python
python机器学习之随机森林(七)
Mar 26 Python
Python高级特性切片(Slice)操作详解
Sep 27 Python
Django给admin添加Action的步骤详解
May 01 Python
Python进程间通信multiprocess代码实例
Mar 18 Python
python对批量WAV音频进行等长分割的方法实现
Sep 25 Python
如何通过安装HomeBrew来安装Python3
Dec 23 Python
python实现MySQL指定表增量同步数据到clickhouse的脚本
Feb 26 Python
golang中的空接口使用详解
Mar 30 Python
python opencv常用图形绘制方法(线段、矩形、圆形、椭圆、文本)
Apr 12 Python
Python之字典添加元素的几种方法
Sep 30 #Python
Python之字典对象的几种创建方法
Sep 30 #Python
python 实现朴素贝叶斯算法的示例
Sep 30 #Python
Python字典取键、值对的方法步骤
Sep 30 #Python
Python根据字典的值查询出对应的键的方法
Sep 30 #Python
python字典通过值反查键的实现(简洁写法)
Sep 30 #Python
python中字典增加和删除使用方法
Sep 30 #Python
You might like
全国FM电台频率大全 - 30 宁夏回族自治区
2020/03/11 无线电
PHP简洁函数小结
2011/08/12 PHP
PHP判断搜索引擎蜘蛛并自动记忆到文件的代码
2012/02/04 PHP
PHP资源管理框架Assetic简介
2014/06/12 PHP
PHP 断点续传实例详解
2017/11/11 PHP
超级酷和最实用的jQuery实例收集(20个)
2010/04/21 Javascript
jQuery LigerUI 使用教程入门篇
2012/01/18 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
innerHTML,outerHTML,innerText,outerText的用法及区别解析
2013/12/16 Javascript
利用JS解决ie6不支持max-width,max-height问题的方法
2014/01/02 Javascript
JavaScript实现页面跳转的几种常用方式
2015/11/28 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
Backbone中View之间传值的学习心得
2016/08/09 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
Angular简单验证功能示例
2017/12/22 Javascript
jQuery实现获取选中复选框的值实例详解
2018/06/28 jQuery
vue中各种通信传值方式总结
2019/02/14 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
简单了解node npm cnpm的具体使用方法
2019/02/27 Javascript
浅谈Vue3.0之前你必须知道的TypeScript实战技巧
2019/09/11 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
使用Python的Twisted框架编写简单的网络客户端
2015/04/16 Python
简单实现python爬虫功能
2015/12/31 Python
Python实现随机选择元素功能
2017/09/14 Python
python 以16进制打印输出的方法
2018/07/09 Python
浅谈Python3中strip()、lstrip()、rstrip()用法详解
2019/04/29 Python
python定位xpath 节点位置的方法
2019/08/27 Python
如何用python批量调整视频声音
2020/12/22 Python
巴西一家专门从事家居和装饰的连锁店:Camicado
2019/08/14 全球购物
文体活动总结范文
2014/05/05 职场文书
食品安全标语
2014/06/07 职场文书
老龄工作先进事迹
2014/08/15 职场文书
2015年幼儿园保育工作总结
2015/05/12 职场文书
感恩教育主题班会
2015/08/12 职场文书
大学生暑期实践报告之企业经营管理
2019/08/08 职场文书
go 原生http web 服务跨域restful api的写法介绍
2021/04/27 Golang