ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

PrefixSpan算法原理

2021-11-18 20:33:00  阅读:238  来源: 互联网

标签:前缀 PrefixSpan 元素 投影 项集 算法 序列 原理


1、简介

PrefixSpan算法的全称是Prefix-Projected Patten Growth,即前缀投影的模式挖掘,是一种关联规则挖掘算法,与Apriori算法,Fp-Growth算法一样,它们都是挖掘某个出现次数频繁的算法。Apriori和Fp-Growth算法都是挖掘频繁项集,而PrefixSpan算法挖掘的是频繁序列。

2、 概念

左边的数据记录称为项集,右边的数据记录称为序列。
左边表格的每一条记录称为项集(由不同字母组成)。
右边表格的每一条记录,是由多个项集组成的,并且组成序列的项集是有先后顺序的。

3、前缀、前缀投影(前缀投影又称后缀)的概念

对上面的表格求(a)元素的前缀及前缀投影,如下: 求前缀投影的方法是:对每条数据记录,从头开始扫描,如果不是前缀就删除这个元素,如果这个元素和前缀相同,也删除这个元素,此时对这一条记录停止扫描,并开始下一条数据记录的扫描。 _d符号:下划线称为占位符,这条元素数据记录为( ad )( c )( bc )( ae ),求a的前缀投影,从头开始扫描这条数据记录,第一个元素与和前缀a相同,此时发现a所在的项集有2个及2个以上的元素(即ad在同一个项集),那么删除a后,要用一个占位符下划线,代替a的位置。 同理,可求前缀(a)(a)的投影为:

4、PrefixSpan算法原理及流程

PrefixSpan算法的目的是挖掘出满足最小支持度的频繁序列,和Apriori算法类似,它是从长度为1的前缀开始挖掘序列模式,搜索对应的前缀投影数据库,得到长度为1的前缀对应的频繁序列,然后递归的挖掘长度为2的前缀对应的频繁序列,依此类推。直到某个前缀的前缀投影数据库为空时结束。
下面举例说明:所用数据库如下,设置的最小支持度为2:

* Step1: 扫描整个数据库,找出所有不同的元素,结果如下: a b c d e f g 共7个元素 再求出每个元素在表格中出现的次数(如果某个元素在同一条数据记录中出现多次,也只认为时出现了一次,如( a )( abc )( ac)( d )( cf )这个序列,a元素在这条记录中出现了多次,但只记为1次)。元素统计次数如下: 显然元素g出现的次数小于2,所以删除所有序列中的g元素。得到table 1表: * Step2: 对这个新的数据库table1,依次以刚才的频繁元素为前缀,求其前缀投影,结果如下: * Step3: 开始挖掘频繁序列,以a为前缀的投影数据库为例: 数据库: * Step4:对数据库table2求出频繁元素: * Step5:再次递归,这次选(d)元素为前缀的前缀投影: 到此为止,这个table3中的所有元素,其出现的次数都小于2,即没有频繁元素了,因此递归到这就结束了。 所以以上步骤中,求了三次前缀投影及频繁元素统计。得到如下频繁序列: * Step6:其他分支也是类似过程,上述可以看到大量的相同操作,这些相同的操作可以用递归表示。

标签:前缀,PrefixSpan,元素,投影,项集,算法,序列,原理
来源: https://www.cnblogs.com/liuyechang/p/15574216.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有