转自:http://www.cnblogs.com/liuqing910/p/8964863.html

关联规则--Apriori算法部分讨论的关联模式概念都强调同时出现关系,而忽略数据中的序列信息(时间/空间):

时间序列:顾客购买产品X,很可能在一段时间内购买产品Y;

空间序列:在某个点发现了现象A,很可能在下一个点发现现象Y。

例:6个月以前购买奔腾PC的客户很可能在一个月内订购新的CPU芯片。

注:1)序列模型=关联规则+时间/空间维度

2)这里讨论的序列模式挖掘指的是时间维度上的挖掘。

一、基本定义

序列:将与对象A有关的所有事件按时间戳增序排列,就得到对象A的一个序列s。

元素(事务):序列是事务的有序列表,可记作,其中每个是一个或多个事件(项)的集族,即

序列的长度:序列中元素的个数。

序列的大小:序列中事件的个数,K-序列是包含k个事件的序列。

如:如下课程序列中包含4个元素,8个事件。

子序列:序列t是另一个序列s的子序列,若t中每个有序元素都是s中一个有序元素的子集。即,序列是序列的子序列,若存在整数,使得

例:

序列数据库:包含一个或多个序列数据的数据集,如下:

二、序列模式挖掘

序列的支持度:序列s的支持度指包含s的所有数据序列(与单个数据对象(上例中的A/B/C)相关联的事件的有序列表)所占的比例,若序列s的支持度大于或等于minsup,则称s是一个序列模式(频繁序列)。

序列模式挖掘:给定序列数据集D和用户指定的最小支持度minsup,找出支持度大于或等于minsup的所有序列。

例:下例中,假设minsup=50%,因为序列(子序列)<{2} {2,3}>包含在A,B,C中,所以其支持度=3/5=0.6,其他类似。

产生序列模式

1、蛮力法

枚举所有可能的序列,并统计它们各自的支持度。值得注意的是:候选序列的个数比候选项集的个数大得多,两个原因如下:

2、类Apriori算法

候选过程:一对频繁(k-1)序列合并,产生候选k-序列。为不重复产生,合并原则如下:

序列S1与序列S2合并,仅当从S1中去掉第一个事件得到的子序列与从S2中去掉最后一个事件得到的子序列相同,合并结果为S1与S2最后一个事件的连接,连接方式有两种:

1)若S2的最后两个事件属于相同的元素,则S2的最后一个事件在合并后的序列中是S1的最后一个元素的一部分;

2)若S2的最后两个事件属于不同的元素,则S2的最后一个事件在合并后的序列中成为连接到S1的尾部的单独元素。

例:

<(1) (2) (3)> + <(2) (3) (4)> = <(1) (2) (3) (4)> :除去S1中第一个事件(1)与除去S2中最后一个事件(4)所剩下的子序列均为<(2) (3)>,且S2最后两个事件(3)(4)属于不同的元素,故单独列出;

<(2 5) (3)> + <(5) (3 4)> = <(2 5) (3 4)>:除去事件2和事件4,剩下子序列相同,由于S2最后两个事件(3 4)属于相同的元素,所以合并到S1最后,而不是写成<(2 5) (3) (3 4)>。

候选剪枝:若候选k-序列的(k-1)-序列至少有一个是非频繁的,则被剪枝。

上例中,候选剪枝后只剩下<{1} {2,5} {3}>。

3、时限约束

施加时限约束时,序列模式的每个元素都与一个时间窗口[l,u]相关联,其中l是该时间窗口内事件的最早发生时间,u是该时间窗口内事件的最晚发生时间。

最大跨度约束:整个序列中所允许的事件的最晚和最早发生时间的最大时间差,记为maxspan,一般地,maxspan越长,在数据序列中检测到模式的可能性越大,但较长的maxspan也可能捕获不真实的模式。

注:最大跨度影响序列模式发现算法的支持度计数,施加最大时间跨度约束之后,有些数据序列就不再支持候选模式。

最小间隔和最大间隔约束:假设最大间隔maxgap=3(天),最小间隔mingap=1,即元素中的事件必须在前一个元素的事件出现后三(一)天内出现。

注:使用最大间隔约束可能违反先验原理,以图2.1为例,无约束情形下,<{2} {5}>和<{2}{3}{5}>的支持度都是60%,若施加约束mingap=0,maxgap=1,<{2} {5}>的支持度下降至40%(缺少D的支持),而<{2}{3}{5}>的支持度仍是60%,即超集的支持度比原集要高——与先验原理违背。使用邻接子序列的概念可避免这一问题。

例:

使用邻接子序列修改先验原理如下:

修订的先验原理:若一个k-序列是频繁的,则它的所有邻接(k-1)-子序列也一定是频繁的。

注:根据上述原理,在候选剪枝阶段,并非所有k-1-序列都序列都需要检查(违反最大间隔约束)。

例:若maxgap=1,则不必检查<{1}{2,3}{4}{5}>的子序列<{1}{2,3}{5}>是否频繁,因为{2,3}和{5}之间的时间差为2,大于一个单位,只需考察其邻接子序列:<{1}{2,3}{4}>,<{2,3}{4}{5}>,<1}{2}{4}{5}>,<{1}{3}{4}{5}>。

窗口大小约束:元素中的事件不必同时出现,可定义一个窗口大小阈值(ws)来指定序列模式的任意元素中事件最晚和最早出现之间的最大允许时间差。(ws=0表示同一元素中的所有事件必须同时出现)。

--GSP算法

算法基本思路

1、长度为1的序列模式L1,作为初始的种子集;

2、根据长度为i的种子集Li,通过连接操作和剪切操作生成长度为i+1的候选序列模式,然后扫描数据库,计算每个候选序列模式的支持度,产生长度为i+1的序列模式并作为新的种子集。

3、重复第二步,直到没有新的序列模式或新的候选序列模式产生为止。

解决两大问题

1、候选集产生:合并+剪枝=期望尽可能少的候选集;

2、支持度计数

两个技巧:

1)哈希树存储数据,减少对于候选序列需要检查的原数据序列个数。

2)改变原数据系列的表达形式以有效发现一个候选项是否是数据序列的子序列。

3、具体做法:

对事物数据库中的每个数据序列的每一项进行哈希,从而确定应该考察哈希树哪些叶子节点中的候选K序列;对于叶子节点中的每个候选K序列,须考察其是否包含在该数据序列中,对每个包含在该数据序列中的候选序列,其计数值加1。

如何考察数据序列d是否包含某个候选K序列s?分两步:

例:假设maxgap=30,mingap=5,ws=0,考察候选序列s=<(1,2)(3)(4)>是否包含在下列数据序列中。

1)首先寻找s的第一个元素(1,2)在该数据序列中第一次出现的位置,对应时间为10;

2)由mingap=5,故在时间15后寻找下一元素(3),发现其第一次出现时间为45,而45-10>30,转入向后阶段;

3)重新寻找(1,2)的第一次出现位置:50,接着在时间55后寻找(3):65,由65-50<30,故满足最大时间间隔约束,转入向前阶段;

4)寻找(3)的下一个元素(4)在时间70(65+5)后的第一次出现位置:90,由90-65<30,满足;

5)考察结束,包含。

关联分析(三)--GSP算法相关推荐

  1. 关联分析:FP-Growth算法

    转载自  关联分析:FP-Growth算法 关联分析又称关联挖掘,就是在交易数据.关系数据或其他信息载体中,查找存在于项目集合或对象集合之间的频繁模式.关联.相关性或因果结构.关联分析的一个典型例子是 ...

  2. 轻松入门机器学习数据挖掘算法——关联分析(Apriori算法)

    小故事:20世纪90年代,沃尔玛超市在对顾客的购物记录进行购物篮分析时,发现了一个奇怪的现象: "啤酒"和"尿布"两件看上去毫无关系的商品,经常出现在同一个购物 ...

  3. 【机器学习】Apriori 算法进行关联分析和FP-growth算法

    [机器学习]Apriori 算法进行关联分析和FP-growth算法 文章目录 1 关联分析 2 FP-growth算法理解和实现 3 FP增长算法的频繁项集产生 4 FP-Growth关联分析算法在 ...

  4. 啤酒和尿不湿?购物篮分析、商品关联分析和关联规则算法都给你搞清楚(上—理论篇)

    不管是不是搞数据分析的,相信应该都听过啤酒尿不湿的故事,说的是美国的沃尔玛超市管理人员分析销售数据时发现了一个令人难以理解的现象:"啤酒"与"尿布湿"这两件看上 ...

  5. apriori算法c++_关联分析——基于Apriori算法实现

    电子商务推荐系统主要是通过统计和挖掘技术,根据用户在网站上的行为,主动为用户提供推荐服务,从而提高网站体验.而根据不同的业务场景,推荐系统需要满足不同的推荐粒度,包括搜索推荐,商品类目推荐,商品标签推 ...

  6. apriori数据集_关联分析——基于Apriori算法实现

    电子商务推荐系统主要是通过统计和挖掘技术,根据用户在网站上的行为,主动为用户提供推荐服务,从而提高网站体验.而根据不同的业务场景,推荐系统需要满足不同的推荐粒度,包括搜索推荐,商品类目推荐,商品标签推 ...

  7. 机器学习 (十五) 关联分析之Apriori算法

    前言 目前随着数据量迅速增多,从海量数据中寻找有价值的信息带来的成本也在不断增加,传统的搜索数据方式已经不能满足我们的需要,我们先来通过一个算法看一下算法时间复杂度快慢带来的影响,通过计算耗时我们会有 ...

  8. 微信推文属性的关联分析 by Apriori算法

    本文通过Apriori算法来对某公司的微信推文属性的关联分析. 本文的目的 找出可让 ['阅读量超过1K'] 的因素,以便达到这些因素使微信推文阅读量提升. 本文的结论 若想让微信推文阅读量超过1K, ...

  9. GWAs——全基因组关联分析三(关联分析)

    经过前面七步的质控,现在的数据集(Table 1)已经可以正式的开始关联分析的主要步骤了. Table 1:进行关联分析的数据集. 文件名 内容信息 HapMap_3_r3_13.bed 实验所有个体 ...

  10. 数据挖掘之关联分析三(规则的产生)

    规则产生 忽略那些前件和后件为空的规则,每个频繁k项集能够产生   个关联规则.将频繁项集Y划分为两个非空子集X和Y-X,使得 能满足置信度阈值,就可以得到满足条件的规则. 在计算规则的置信度时并不需 ...

最新文章

  1. 2019-03-14-算法-进化(两个数组的交集 II)
  2. PROTEUS元件库元件称呼 .
  3. 95-230-026-源码-WordCount走读-本地运行SubmitJob的过程
  4. 用友ERP-U8执行完成流程小记
  5. 2021年中国电热饭盒市场趋势报告、技术动态创新及2027年市场预测
  6. 两款WiFi无线网络扫描工具软件:WirelessMon、Xirrus WiFi Inspector
  7. 创建你的战略型人际网络
  8. 符冉迪 计算机 培训,宁波大学考研研究生导师简介-符冉迪
  9. NOIP五校联考1-4总结
  10. 延缓青少年近视进展的新方案
  11. QT comboBox设置下拉菜单()
  12. CVPR2022:Generalizable Cross-modality Medical Image Segmentation via StyleAugmentation and Dual Norm
  13. android直播 腾讯云,Android 腾讯云直播 自定义消息收发
  14. 苹果输入法怎么换行_精选百度输入法皮肤|美美的几十款
  15. 大学计算机基础ppt操作题目,键盘操作大学计算机基础.ppt
  16. Tomcat 深度解析_02
  17. Syslog日志服务器配置 For CentOS 7.8(Syslog+LogAnalyzer+LAMP)
  18. iOS13.7 各机型续航对比测试,更省电了吗?
  19. 【工程】Pulp-Amply(三)
  20. openGL之API学习(四十七)layout作用详解

热门文章

  1. Ubuntu18.04安装markdown工具Typora
  2. Ubuntu升级wine4.0
  3. Android.mk小结
  4. tensorflow之argmax与axis
  5. 计算机基础(六):内存申请方式
  6. java children_java构建树形列表(带children属性)
  7. Linux排查java程序CPU占用过高问题
  8. The application could not be installed: INSTALL_FAILED_INSUFFICIENT_STORAGE
  9. python 逻辑回归sklearn_python – 分类:使用sklearn进行PCA和逻辑回归
  10. m3u8 video ios h5_移动端H5页面踩坑记