一、关联分析

关联分析主要是用于从数据集中发现数据项之间的关系。

1. 基本概念

1.1 支持度

X → Y 的支持度表示项集 {X,Y} 在总项集中出现的概率:
support(X→Y)=P(X,Y)support(X\rightarrow Y)=P(X,Y)support(X→Y)=P(X,Y)
用于衡量同时满足X和Y的概率。

1.2 置信度

X → Y 的置信度表示在先决条件 X 发生的情况下,由规则 X → Y 推出 Y 的概率。
confident(X→Y)=P(Y∣X)confident(X\rightarrow Y)=P(Y|X)confident(X→Y)=P(Y∣X)
用于衡量X与Y之间的关联性。

1.3 提升度

X → Y 的提升度等于 X → Y 的置信度除以 Y 的支持度
lift(X→Y)=confident(X→Y)support(Y)=P(Y∣X)P(Y)=P(X,Y)P(X)P(Y)lift(X\rightarrow Y)=\frac{confident(X\rightarrow Y)}{support(Y)}=\frac{P(Y|X)}{P(Y)}=\frac{P(X,Y)}{P(X)P(Y)}lift(X→Y)=support(Y)confident(X→Y)​=P(Y)P(Y∣X)​=P(X)P(Y)P(X,Y)​
用于衡量关联规则是否可用,大于1则可用

1.4 关联分析

关联分析的本质就是在集合里找出大于最小支持度阈值和最小信任度阈值的关联规则,并依据提升度找出其中可用(lift>1)的关联规则。

2. 求解算法:Aprior算法

2.1 算法描述

Apriori算法的目标是找到最大的K项频繁集。这里有两层意思,

  • 首先,我们要找到符合支持度标准的频繁集。但是这样的频繁集可能有很多。
  • 其次,我们要找到最大个数的频繁集。比如我们找到符合支持度的频繁集AB和ABE,那么我们会抛弃AB,只保留ABE,因为AB是2项频繁集,而ABE是3项频繁集。

2.2 算法细节

Apriori算法是如何做到挖掘K项频繁集的呢?事实上,Apriori算法是采用了迭代的方法:

  • 先搜索出候选1项集及对应的支持度,剪枝去掉低于支持度的1项集,得到频繁1项集;
  • 然后对剩下的频繁1项集进行连接,得到候选的频繁2项集,筛选去掉低于支持度的候选频繁2项集,得到真正的频繁二项集;
  • 以此类推,迭代下去,直到无法找到频繁k+1项集为止,对应的频繁k项集的集合即为算法的输出结果。

2.3 参考教程

参考 Apriori算法原理总结 - 刘建平Pinard - 博客园
https://www.cnblogs.com/pinard/p/6293298.html

二、序列模式关联分析

序列模式关联分析所挖掘的对象及结果都是有序的。序列模式关联分析的核心就是要找到事物发展的前后关联性,从而挖掘出带有一定因果性质的规律。
举例:

  • 简单关联关系:购买面包的顾客80%都会购买牛奶,由于面包和牛奶是早餐搭配的必需品,二者搭配构成了早餐的组成部分,这就是简单的关联关系。
  • 序列关联关系:当购买一款新手机后,就会考虑去购买手机膜等手机配件,这就是一种序列关系,不会先买手机膜再买手机的,先后关系是非常明显的,这种关系就是序列关联关系。

1. 求解算法

1.1 GSP算法

本质:

类Apriori算法

步骤:

  • 1.自连接
    序列如何进行自连接呢?有这样一个定义,即对于序列S1和S2,如果序列S1去掉第一项,与序列2去掉最后一项得到的序列相同,那么序列1和序列2就是可以连接的。把序列2的最后一项加入到序列1中,得到一个新的连接,即可以作为序列1和序列2连接的结果。
  • 2.剪枝
    GSP算法的剪枝条件与Apriori算法的剪枝条件相同:1.如果序列的支持度小于最小支持度,那么就会被剪掉 2.如果序列是频繁序列,则它的所有子序列必定是频繁序列;所以如果一个序列存在不是频繁序列的子序列的话,也会被剪掉。

缺点

每次计算序列的支持度时,都需要全表扫描数据集D

参考教程

  • 关联分析之序列模式 - 卧龙居 - CSDN博客
    https://blog.csdn.net/rongyongfeikai2/article/details/40478335
  • 时间序列频繁模式挖掘:GSP算法、SPADE算法 - chixujohnny - CSDN博客
    https://blog.csdn.net/chixujohnny/article/details/47335911

1.2 SPADE算法

SPADE算法依旧使用传统的先验性质,即连接步+剪枝步的经典组合,思想跟GSP大致相同,只不过由于它多了一个ID_LIST记录,使得每一次的ID_LIST根据上一次的ID_LIST得到(从而得到支持度),而ID_LIST的规模是随着剪枝的不断进行,而规模逐渐缩小的。所以也就解决了GSP算法多次扫描数据集D问题。

算法细节

  • 寻找1成员和2成员频繁项集方法跟GSP完全形同
  • 在之后的3成员及之后的频繁项计算中,套用了如下3个规则找出“有可能”是频繁的元素,
  1. 如果诸如成员PA,PD这样的形式出现在2频繁项集中,则能推导出PBD这样的三成员元素。
  2. 如果出现诸如PB,P->A这样的形式出现在2频繁项集中,则能推导出PB->A这样的三成员元素。
  3. 如果出现诸如P->A,P->F这样的形式出现在2频繁项集中,则能推导出P->AF或P->A->F或P->F->A这样的三成员元素。
  • 为了确定是不是频繁的元素,还去原始data中进一步遍历、判断。


参考教程

  • [图文]SPADE算法介绍 - 百度文库
    https://wenku.baidu.com/view/08a4d626ed630b1c59eeb55e.html

【ML小结6】关联分析与序列模式关联分析相关推荐

  1. 灰色关联分析_灰色关联分析模型研究综述

    灰色关联分析模型研究小结 1 引言 灰色关联分析是灰色系统理论中十分活跃的一个分支, 其基本思想是根据序列曲线几何形状来判断不同序列之间的联系是否紧密. 基本思路是通过线性插值的方法将系统因素的离散行 ...

  2. Statistical Analysis:关联度分析之灰色关联分析软件

    Statistical Analysis:关联度分析之灰色关联分析软件 导读:灰色关联分析,从其思想方法上来看,属于几何处理的范畴,其实质是对反映各因素变化特征的数据序列所进行的几何比较.用于度量因素 ...

  3. 杜邦分析法、漏斗分析法和矩阵关联分析法

    数据分析工作涉及到很多的分析方法,比如说杜邦分析法.漏斗分析法以及矩阵关联分析法,这些方法都是能够帮助我们更好地进行数据分析工作.在这篇文章中我们就给大家介绍一下关于杜邦分析法.漏斗分析法和矩阵关联分 ...

  4. 关联度分析法-灰色关联分析

    目录 灰色关联分析介绍 灰色关联分析的步骤 实例 灰色关联分析介绍 对于两个系统之间的因素,其随时间或不同对象而变化的关联性大小的量度,称为关联度.在系统发展过程中,若两个因素变化的趋势具有一致性,即 ...

  5. python灰色关联度分析_灰色关联分析法 python

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 本文2290字,预计阅读需10分钟: 关联分析(association anal ...

  6. 埋点数据mysql分析_用户行为分析-埋点实时数仓实践(附用户关联源码)

    一.概述 埋点采集.用户行为分析.实时数仓.IdMapping 此文重点讲述埋点的数据模型.数据格式.数据实时采集.加工.存储及用户关联.关于用户行为分析的概念.意义以及埋点相关的东西此文不作赘述 二 ...

  7. Laravel源码分析之模型关联

    上篇文章我们主要讲了Eloquent Model关于基础的CRUD方法的实现,Eloquent Model中除了基础的CRUD外还有一个很重要的部分叫模型关联,它通过面向对象的方式优雅地把数据表之间的 ...

  8. jpa多表关联查询_JPA【关联查询篇】

    摘要:本文主要介绍JPA的多表关联查询(一对一.一对多.双向关联.多对一.多对多)以及N+1查询的优化. 1. JPA多表关联查询 多表关联查询就是实现使用一个实体类对象操作或者查询多个表的数据. 配 ...

  9. C++primer第十一章 关联容器 11.3关联容器操作 11.4 无序容器

    11.3关联容器操作 除了表9.2(第295页)中列出的类型,关联容器还定义了表11.3中列出的类型.这些类型表示容器关键字和值的类型. 对于set类型,key_type和value type是一样的 ...

  10. java mybtis关联查询,7.MyBatis 关联查询(一对一)

    1 关联查询映射 1.1 分析数据模型 思路 :每张表记录的数据内容 每张表重要的字段(主键,外键,非空字段) 表与表之间的关系(外键关系) 表与表之间的业务关系(建立在某个业务意义基础上去分析) 如 ...

最新文章

  1. 第五周项目一-三角形类雏形(2)
  2. 向maven中央仓库提交jar
  3. Web服务必须要知道的几个概念
  4. 连续三年蝉联第一,Flink 荣膺全球最活跃的 Apache 开源项目
  5. BGP小实验——选路不困难,只要有方法
  6. ADOMD.net概述
  7. 具有弹性效果的ListView
  8. 数据库中间件漫谈——看看云时代,它会走向何方
  9. 文件批量传输组件作为架包使用说明
  10. Java学习笔记之:Java 继承
  11. html文档图标恢复,恢复HTM HTML图标方法
  12. 2017/09/01-2017/09/30工作日志(补)
  13. 同步电脑与手机,让手机变身无线Modem
  14. C++ char/byte 转16进制字符串
  15. input checkbox 选中问题
  16. [架构之路-32]:目标系统 - 系统软件 - Linux OS用户空间程序的启动、关闭、监管 -- init进程
  17. 安全运维 | 八大运维监控平台及选型推荐
  18. CRF++安装教程(含Windows和Linux两个版本)
  19. GFP-GAN学习笔记
  20. mysql中local方法,LOCAL

热门文章

  1. lua 读取lua文件
  2. jabberd2分析
  3. C#常用操作类库一(验证类)
  4. Phone Bills【PAT 1016题】--- 电话账单结算
  5. 招聘senior.net software engineer
  6. Mybatis原生dao开发方法实现增删改查
  7. ecshop php7 mysql_ecshop如何修改并支持PHP7
  8. 组概念_【收藏】学习质谱一定要知道的6组概念
  9. python turtle原点位置_python中turtle库中setworldcoordinates(坐标系的移动)
  10. oracle不提交事务语句,oracle查找客户端未提交的事务语句