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 关联规则学习相关推荐

  1. Python关联规则挖掘情侣、基友、渣男和狗。学会这个就非常牛逼了。

    本文讲解的是机器学习中一个算法的应用:关联规则分析 整个故事从一张校园卡开始.相信小伙伴们都用过校园卡,它是一种其个人身份认证.校园消费.数据共享等多功能于一体的校园信息集成与管理系统.在它里面存储着 ...

  2. 关联分析python牛奶面包_Python数据分析基础ReadingDay13_关联分析Apriori

    reading Foundations for Analysis with Python Day 13 <Python数据分析基础>封面 之前我们已经完成了<Python数据分析基础 ...

  3. python预测糖尿病_Python数据挖掘 | 实战案例之预测糖尿病

    今天给大家讲解一个实战案例:如何根据现有数据预测糖尿病.在这个案例开始之前,希望大家回忆一下大学里讲过的线性回归的知识,这是数据挖掘里非常重要的一部分知识.当然,鉴于大家都学过,本篇就不再赘述. 一. ...

  4. python数据分类方法_Python数据挖掘—分类—贝叶斯分类

    pandas之get_dummies 方法:pandas.get_dummies(data,prefix=None,prefix_sep="_",dummy_na=False,co ...

  5. python葡萄酒数据集_Python 数据挖掘- Kaggle红酒品质数据

    数据挖掘或机器学习在商业智能领域的案例在Kaggle 很多,我今天分享一下红酒数据. 按照CRISP模型第一步去了解业务,也就是数据集描述的业务场景,如果不理解这一点,那么数据分析的意义又在哪儿呢,就 ...

  6. python 降维 聚类_python数据挖掘实战之四:聚类

    计划写一下本学期选修的<机器学习与商业数据挖掘>课程的一系列实战笔记,本篇是第四节课的内容--聚类. 聚类 聚类分析(cluster analysis)是常见的数据挖掘手段,其主要假设是数 ...

  7. python 微博文本挖掘_Python数据挖掘-文本挖掘

    文本挖掘概要 搞什么的?从大量文本数据中,抽取出有价值的知识,并且利用这些知识更好的组织信息的过程. 目的是什么?把文本信息转化为人们可利用的知识. 举例来说,下面的图表利用文本挖掘技术对库克ipho ...

  8. python银行开户_Python数据挖掘与Stata应用实证寒假工作坊

    1月25日上午 主讲人:邓旭东 课程安排:python语法入门 1.Python跟英语一样是一种语言 2.数据类型之字符串 3. 数据类型之列表元组集合 4. 数据类型之字典 5.数据类型之布尔值.N ...

  9. python关联规则挖掘_Python3:文本关联规则挖掘实现案例分析

    支持度 Support(支持度):表示同时包含A和B的事务占所有事务的比例.如果用P(A)表示使用A事务的比例,那么Support=P(A&B) 苍天不负有心人啊,我玩了两三个周的文本挖掘,终 ...

最新文章

  1. iOS 排序算法总结、二分法查找
  2. python判断变量不为空_Python简洁方法
  3. pyspark pipline
  4. 如何把复杂单体应用快速迁移到微服务
  5. java调用wcf_详解JAVA调用WCF服务的示例代码
  6. 11月中30个精心设计的网站案例精选
  7. k8s从入门到放弃--使用kubeadm快速安装kubernetes
  8. 国内外自动驾驶仿真软件总结
  9. 针对 VOC2007和VOC2012 的具体用法
  10. 南京邮电大学 RE-WxyVM
  11. 高通WLAN框架学习(3)- -WLAN FTM 模式
  12. 探访北大最AI的食堂!刷脸打饭,机器认识200多道菜
  13. BZOJ3527 力
  14. GBA的内存其实很大
  15. 从零开始学前端 - 7. CSS盒模型 margin和padding详解
  16. Linux下QT添加图片运行程序后:iCCP: known incorrect sRGB profile(实测有效)
  17. 英语学习笔记(一)语法
  18. ubuntu16.04 + caffe + SSD 硬件配置
  19. 佳德智诚电商:拼多多货物拒收后要如何退款?
  20. oppo锁频段_给大家科普下现在的OPPO Reno3支持哪几个5G频段

热门文章

  1. 解决win11默认网关不可用导致间歇性信号不佳的问题
  2. 银河麒麟桌面操作系统V10-常见运维问题类别:系统使用 02
  3. 微信小程序[ app.json 文件内容错误] app.json: app.json 未找到解决方法
  4. IDEA 超全优化设置
  5. SCPI协议C语言,使用SCPI语言实现计算机与设备仪器通讯.pdf
  6. java class 静态模块_Java API 最佳设计实践:在模块化和非模块化 Java 环境中使用...
  7. 【STM32F407】第3章 RTX5操作系统介绍
  8. kafka消息删除机制
  9. 微信小程序视频分享平台系统毕业设计毕设(4)开题报告
  10. matlab GUI 打包程序(Application Complier生成exe文件和App打包)