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 相关文章推荐
python生成器的使用方法
Nov 21 Python
浅谈python中copy和deepcopy中的区别
Oct 23 Python
Python随机函数random()使用方法小结
Apr 29 Python
python hbase读取数据发送kafka的方法
Dec 27 Python
python 多线程重启方法
Feb 18 Python
基于Python的ModbusTCP客户端实现详解
Jul 13 Python
python+selenium 鼠标事件操作方法
Aug 24 Python
详解python tkinter模块安装过程
Jan 06 Python
Python 剪绳子的多种思路实现(动态规划和贪心)
Feb 24 Python
python 利用Pyinstaller打包Web项目
Oct 23 Python
Python request post上传文件常见要点
Nov 20 Python
用Python的绘图库(matplotlib)绘制小波能量谱
Apr 17 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
PHP+Ajax异步通讯实现用户名邮箱验证是否已注册( 2种方法实现)
2011/12/28 PHP
PHP中函数rand和mt_rand的区别比较
2012/12/26 PHP
PHP的password_hash()使用实例
2014/03/17 PHP
php计算整个mysql数据库大小的方法
2015/06/19 PHP
PHP 数组基本操作方法详解
2016/06/17 PHP
laravel 如何实现引入自己的函数或类库
2019/10/15 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
通过实例解析PHP数据类型转换方法
2020/07/11 PHP
js数组的操作详解
2013/03/27 Javascript
js 弹出新页面避免被浏览器、ad拦截的一种新方法
2014/04/30 Javascript
理解jQuery stop()方法
2014/11/21 Javascript
轻松创建nodejs服务器(5):事件处理程序
2014/12/18 NodeJs
canvas滤镜效果实现代码
2017/02/06 Javascript
jQuery Autocomplete简介_动力节点Java学院整理
2017/07/17 jQuery
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
mescroll.js上拉加载下拉刷新组件使用详解
2017/11/13 Javascript
基于Vue2x的图片预览插件的示例代码
2018/05/14 Javascript
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
elementUI Tree 树形控件的官方使用文档
2019/04/25 Javascript
基于ts的动态接口数据配置的详解
2019/12/18 Javascript
微信小程序实现可长按移动控件
2020/11/01 Javascript
Perl中著名的Schwartzian转换问题解决实现
2015/06/02 Python
Windows下为Python安装Matplotlib模块
2015/11/06 Python
利用Python开发实现简单的记事本
2016/11/15 Python
详解django自定义中间件处理
2018/11/21 Python
python跳出双层for循环的解决方法
2019/06/24 Python
在python中创建指定大小的多维数组方式
2019/11/28 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
Clearly新西兰:购买眼镜、太阳镜和隐形眼镜
2018/04/26 全球购物
军神教学反思
2014/02/04 职场文书
影子教师研修方案
2014/06/14 职场文书
家长必看:义务教育,不得以面试 评测等名义选拔学生
2019/07/09 职场文书
2019年XX公司的晨会制度及流程!
2019/07/23 职场文书
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript
CKAD认证中部署k8s并配置Calico插件
2022/03/31 Servers
Nginx如何配置多个服务域名解析共用80端口详解
2022/09/23 Servers