python关联规则挖掘_python数据挖掘 pycaret.arules 关联规则学习
1.关联算法应用介绍
关联规则分析是数据挖掘中最活跃的研究方法之一,目的是在一个数据集中找出各项之间的关联关系,而这种关系并没有在数据中直接表示出来。常见于与购物篮分析。
常用关联算法表如下,简单理解的话,就是测算某几项东西一起出现的概率。比如:如果测算得出,大量订单中出现面包、牛奶这两个东西,那么就放在一起销售,增加市场收入。
三个判断准则:支持度(support)、置信度(confident)、提升度(lift)。参考链接:如何理解关联法则中的三个判断准则
1.support(A)= number of A/total items,support(B)= number of B/total items,support(A=>B)= support(B=>A)= number of A and B/total items
2.confidence(A=>B)= number of A and B/number of A,confidence(A=>B)!= confidence(B=>A)
3.lift(A=>B)= confidence(A=>B)/support(B),lift(A=>B)= lift(B=>A)
对三个准则的解释:
support很简单,就是单一商品或者rule出现的概率。我们认为某条规则(rule)出现的次数需要达到一定程度,才能认为这条规则有足够的支持度来支撑其是真实存在的,而不仅仅是因为偶然出现了几次就认为这是一条普遍存在的规则。support是第一道过滤的准则,能够在繁杂众多的交易中过滤出值得我们关注的潜在规则。
confidence我们认为代表着“给定consequent的情况下,antecedent出现的概率”,也就是说是判断规则中两边存在的联系。confidence越高越好,一个高的confidence证明当交易出现了某个antecedent的时候,很大可能会出现某个consequent,也就是某条规则成立的概率越大。
lift融合了support和confidence,代表一条规则中,antecedent和consequent的依赖性,当lift=1的时候,代表给定一个antecedent,某个consequent出现的概率是随机的,也就是说antecedent和consequent相互独立,两者没有任何依赖性,规则不成立。当lift<1的时候,证明antecedent和consequent之间可能存在负依赖性,两者同时存在的概率甚至小于随机选择,若果lift大大小于1,有可能两者是替代商品。当lift>1的时候,则代表两者可能存在正依赖性,顾客买antecedent的时候更倾向于同时购买consequent。
举例:
假设有两个商品A和B,商品A的support是40%,商品B的support是95%,表明40%的交易里面存在A,95%的交易里面存在B,注意,A和B之间在这里仅仅代表自己,40%和95%这两个数值并不代表他们之间存在联系。假如confidence(A=>B)=80%,表明如果顾客购买了A,有80%的顾客同时有购买了B。又假设support(A=>B)足够高,这似乎看起来support和confidence都很高的情况下,A=>B这条规则是很有可能成立的。然而lift只有confidence(A=>B)/support(B)= 80% / 95% =0.8421,也就是说lift不太支持这条规则成立,因为顾客普遍都会买B,导致了support和confidence都偏高而lift则不高。
2.pycaret.arules使用方法
1)setup() :初始化-> create_model() :创建模型-> plot_model()展示模型结果与分析
2)get_rules():查看详细规则,返回pandas.DataFrame
2.1API介绍
初始化:
#pycaret使用模型的第一步,初始化。#data: pandas.DataFrame#transaction_id: str 识别事务的ID字段#item_id: str 用于做关联的字段,如:菜品Id列#ignore_items: list, default = None 规则挖掘中,需要被忽略的规则#session_id: int, default = None 随机种子?
# return 全局变量pycaret.arules.setup(data, transaction_id, item_id, ignore_items=None, session_id=None)
创建模型:
#metric:设置评估变量,可以为‘confidence‘,‘support’, ‘lift’, ‘leverage’, ‘conviction’#threshold: float, default = 0.5,评估变量的最小阈值#min_support: float, default = 0.05,支持度最小阈值#round: int, default = 4,设置小数位精确度#Returns:pandas.DataFrame规则详情
pycaret.arules.create_model(metric=‘confidence‘, threshold=0.5, min_support=0.05, round=4)
绘制展示:
#model: pandas.DataFrame, default = none,传入刚刚创建的模型#plot: str, default = ‘2d’,或‘3d‘,绘制图表类型的参数#scale: float, default = 1,图像分辨率
pycaret.arules.plot_model(model, plot=‘2d‘, scale=1)
其他
具体使用代码:
from pycaret.datasets importget_data
data= get_data(‘france‘)from pycaret.arules import *exp_name= setup(data = data, transaction_id = ‘InvoiceNo‘, item_id = ‘Description‘)
rule1= create_model(metric=‘confidence‘, threshold=0.7, min_support=0.05)
plot_model(rule1, plot=‘3d‘)
rule1,字段定义:
support(A->C) = support(A+C) [aka ‘support’], range: [0, 1]
confidence(A->C) = support(A+C) / support(A), range: [0, 1]
lift(A->C) = confidence(A->C) / support(C), range: [0, inf]
leverage(A->C) = support(A->C) - support(A)*support(C), range: [-1, 1],emmm,没看出啥意义先。
conviction = [1 - support(C)] / [1 - confidence(A->C)], range: [0, inf],emmm,没看出啥意义先。
· 实际使用中,应该还有对consequents进行一个筛选,留下自己期望的结果。比如,中医症状与病情,结果仅需要“病情”。
图例显示,3d图形的显示,能够很快的找到相对各参数都比较大的点。
原文:https://www.cnblogs.com/cycxtz/p/14127432.html
python关联规则挖掘_python数据挖掘 pycaret.arules 关联规则学习相关推荐
- Python关联规则挖掘情侣、基友、渣男和狗。学会这个就非常牛逼了。
本文讲解的是机器学习中一个算法的应用:关联规则分析 整个故事从一张校园卡开始.相信小伙伴们都用过校园卡,它是一种其个人身份认证.校园消费.数据共享等多功能于一体的校园信息集成与管理系统.在它里面存储着 ...
- 关联分析python牛奶面包_Python数据分析基础ReadingDay13_关联分析Apriori
reading Foundations for Analysis with Python Day 13 <Python数据分析基础>封面 之前我们已经完成了<Python数据分析基础 ...
- python预测糖尿病_Python数据挖掘 | 实战案例之预测糖尿病
今天给大家讲解一个实战案例:如何根据现有数据预测糖尿病.在这个案例开始之前,希望大家回忆一下大学里讲过的线性回归的知识,这是数据挖掘里非常重要的一部分知识.当然,鉴于大家都学过,本篇就不再赘述. 一. ...
- python数据分类方法_Python数据挖掘—分类—贝叶斯分类
pandas之get_dummies 方法:pandas.get_dummies(data,prefix=None,prefix_sep="_",dummy_na=False,co ...
- python葡萄酒数据集_Python 数据挖掘- Kaggle红酒品质数据
数据挖掘或机器学习在商业智能领域的案例在Kaggle 很多,我今天分享一下红酒数据. 按照CRISP模型第一步去了解业务,也就是数据集描述的业务场景,如果不理解这一点,那么数据分析的意义又在哪儿呢,就 ...
- python 降维 聚类_python数据挖掘实战之四:聚类
计划写一下本学期选修的<机器学习与商业数据挖掘>课程的一系列实战笔记,本篇是第四节课的内容--聚类. 聚类 聚类分析(cluster analysis)是常见的数据挖掘手段,其主要假设是数 ...
- python 微博文本挖掘_Python数据挖掘-文本挖掘
文本挖掘概要 搞什么的?从大量文本数据中,抽取出有价值的知识,并且利用这些知识更好的组织信息的过程. 目的是什么?把文本信息转化为人们可利用的知识. 举例来说,下面的图表利用文本挖掘技术对库克ipho ...
- python银行开户_Python数据挖掘与Stata应用实证寒假工作坊
1月25日上午 主讲人:邓旭东 课程安排:python语法入门 1.Python跟英语一样是一种语言 2.数据类型之字符串 3. 数据类型之列表元组集合 4. 数据类型之字典 5.数据类型之布尔值.N ...
- python关联规则挖掘_Python3:文本关联规则挖掘实现案例分析
支持度 Support(支持度):表示同时包含A和B的事务占所有事务的比例.如果用P(A)表示使用A事务的比例,那么Support=P(A&B) 苍天不负有心人啊,我玩了两三个周的文本挖掘,终 ...
最新文章
- iOS 排序算法总结、二分法查找
- python判断变量不为空_Python简洁方法
- pyspark pipline
- 如何把复杂单体应用快速迁移到微服务
- java调用wcf_详解JAVA调用WCF服务的示例代码
- 11月中30个精心设计的网站案例精选
- k8s从入门到放弃--使用kubeadm快速安装kubernetes
- 国内外自动驾驶仿真软件总结
- 针对 VOC2007和VOC2012 的具体用法
- 南京邮电大学 RE-WxyVM
- 高通WLAN框架学习(3)- -WLAN FTM 模式
- 探访北大最AI的食堂!刷脸打饭,机器认识200多道菜
- BZOJ3527 力
- GBA的内存其实很大
- 从零开始学前端 - 7. CSS盒模型 margin和padding详解
- Linux下QT添加图片运行程序后:iCCP: known incorrect sRGB profile(实测有效)
- 英语学习笔记(一)语法
- ubuntu16.04 + caffe + SSD 硬件配置
- 佳德智诚电商:拼多多货物拒收后要如何退款?
- oppo锁频段_给大家科普下现在的OPPO Reno3支持哪几个5G频段
热门文章
- 解决win11默认网关不可用导致间歇性信号不佳的问题
- 银河麒麟桌面操作系统V10-常见运维问题类别:系统使用 02
- 微信小程序[ app.json 文件内容错误] app.json: app.json 未找到解决方法
- IDEA 超全优化设置
- SCPI协议C语言,使用SCPI语言实现计算机与设备仪器通讯.pdf
- java class 静态模块_Java API 最佳设计实践:在模块化和非模块化 Java 环境中使用...
- 【STM32F407】第3章 RTX5操作系统介绍
- kafka消息删除机制
- 微信小程序视频分享平台系统毕业设计毕设(4)开题报告
- matlab GUI 打包程序(Application Complier生成exe文件和App打包)