今天遇到两个比较有名的在频繁模式挖掘领域中经常会使用到的算法:FreeSpan 和 PrefixSpan 算法,说起来,我对这两个算法只能说是了解,但却不能说很明白,正好今天遇到了就索性,查一下资料,整理一下作为今天关于这两个算法的学习笔记,文章末尾会给出来查询使用的资料链接:

FreeSpan ,即频繁模式投影的序列模式挖掘,其基本思想为:利用频繁项递归地将序列数据库投影到更小的投影数据库集中,在每个投影数据库中生成子序列片段.这一过程对数据和待检验的频繁模式集进行了分割,并且将每一次检验限制在与其相符合的更小的投影数据库中.其基本思想为:利用频繁项递归地将序列数据库投影到更小的投影数据库集中,在每个投影数据库中生成子序列片段.这一过程对数据和待检验的频繁模式集进行了分割,并且将每一次检验限制在与其相符合的更小的投影数据库中.

简单的过程如下:

(1) 首先给定序列数据库S 及最小支持度阈值ζ.
(2) 扫描序列数据库S,找到S中的频繁项集,并以降序排列生成f_list列表。
执行下面步骤:
根据生成的f_list列表把数据库分成几个不相交的子集。只包含第一个项。包含第二个项,但不包含以后的项。包含第N项,但不包含N以后的项。只包含最后一项。
b.第一遍扫描数据库S,找出每个项及其与前一项组成的项在序列数据库中的频度,删除小于最小支持度的项。
d.对生成的大于最小支持度的项递归的挖掘出更长频度的序列。直至最后的投影数据库都是最大的频繁子集。
FreeSpan算法分析:它将频繁序列和频繁模式的挖掘统一起来,把挖掘工作限制在投影数据库中,还能限制序列分片的增长。它能有效地发现完整的序列模式,同时大大减少产生候选序列所需的开销,比基于Apriori的GSP算法快很多。不足之处,它可能会产生许多投影数据库,如果一个模式在数据库中的每个序列中出现,该模式的投影数据库将不会缩减;另外,一个长度为k的序列可能在任何位置增长,那么长度为k+1的候选序列必须对每个可能的组合情况进行考察,这样所需的开销是比较大的。
PrefixSpan算法也是序列模式分析算法的一种,不过与前者不同的是PrefixSpan算法不产生任何的侯选集,在这点上可以说已经比GSP好很多了。PrefixSpan算法可以挖掘出满足阈值的所有序列模式,可以说是非常经典的算法。序列的格式就是上文中提到过的类似于<a, b, (de)>这种的。
参考博客:
http://blog.csdn.net/androidlushangderen/article/details/43766253
http://blog.csdn.net/u011860731/article/details/47685557
http://blog.csdn.net/shuke1991/article/details/52526913
http://zzkshaanxi.blog.163.com/blog/static/19761892009101921142779/

FreeSpan 和 PrefixSpan 算法学习相关推荐

  1. 用Spark学习FP Tree算法和PrefixSpan算法

    在FP Tree算法原理总结和PrefixSpan算法原理总结中,我们对FP Tree和PrefixSpan这两种关联算法的原理做了总结,这里就从实践的角度介绍如何使用这两个算法.由于scikit-l ...

  2. PrefixSpan算法原理总结

    前面我们讲到频繁项集挖掘的关联算法Apriori和FP Tree.这两个算法都是挖掘频繁项集的.而今天我们要介绍的PrefixSpan算法也是关联算法,但是它是挖掘频繁序列模式的,因此要解决的问题目标 ...

  3. 拿下斯坦福和剑桥双offer,00后的算法学习之路

    董文馨,00后,精通英语,西班牙语.斯坦福大学计算机系和剑桥大学双Offer,秋季将进入斯坦福大学学习. 10岁开始在国外上学:12岁学Scratch: 13岁学HTML & CSS: 14岁 ...

  4. Apriori算法、FP-Growth算法、顺序分析、PrefixSpan算法

    Apriori算法.FP-Growth算法.顺序分析.PrefixSpan算法 目录 Apriori算法.FP-Growth算法.顺序分析.PrefixSpan算法 Apriori算法 FP-Grow ...

  5. 好久没有看到这么有建设性德文章,由衷地赞叹《知其所以然地学习(以算法学习为例)》-By 刘未鹏(pongba)

    知其所以然地学习(以算法学习为例) By 刘未鹏(pongba) C++的罗浮宫(http://blog.csdn.net/pongba) Updated(2008-7-24):更新见正文部分,有标注 ...

  6. 原创 | 初学者友好!最全算法学习资源汇总(附链接)

    在计算机发展飞速的今天,也许有人会问,"今天计算机这么快,算法还重要吗?"其实永远不会有太快的计算机,因为我们总会想出新的应用.虽然在摩尔定律的作用下,计算机的计算能力每年都在飞快 ...

  7. 基本算法学习(一)之希尔排序(JS)

    参考书: 严蔚敏-数据结构 希尔排序(Shell's Sort) 希尔排序又称"缩小增量排序",归属于插入排序一类,简单来说,和我们的插入排序比,它更快. 奇妙的记忆点: 内排序( ...

  8. 大顶堆删除最大值_算法学习笔记(47): 二叉堆

    堆(Heap)是一类数据结构,它们拥有树状结构,且能够保证父节点比子节点大(或小).当根节点保存堆中最大值时,称为大根堆:反之,则称为小根堆. 二叉堆(Binary Heap)是最简单.常用的堆,是一 ...

  9. Surf算法学习心得(一)——算法原理

    Surf算法学习心得(一)--算法原理 写在前面的话: Surf算法是对Sift算法的一种改进,主要是在算法的执行效率上,比Sift算法来讲运行更快!由于我也是初学者,刚刚才开始研究这个算法,然而网上 ...

  10. 算法学习:后缀自动机

    [前置知识] AC自动机(没有什么关联,但是看懂了会对后缀自动机有不同的理解) [解决问题] 各种子串的问题 [算法学习] 学习后缀自动机的过程中,看到了许多相关性质和证明,但是奈何才疏学浅(lan) ...

最新文章

  1. Linq之延迟加载特性
  2. 计算机php什么意思,什么是PHPC(个人高性能计算机 )
  3. 系列TCP/IP协议-广播与多播(010)
  4. A Network-based End-to-End Trainable Task-oriented Dialogue System
  5. 【转载】设计模式_六大原则(学习)
  6. DataTable随机复制一行给新的DataTable
  7. 自己敲的low到爆炸的代码
  8. string类中一些方法的使用
  9. Python使用matplotlib可视化模拟闯红灯现象柱状图
  10. abp vnext修改密码策略
  11. 找到7天内要过生日的记录
  12. 【离散数学】图论 第七章(3) 图的矩阵表示(邻接矩阵、可达矩阵、传递闭包求解算法)
  13. opencv normalize()函数详解
  14. 脱壳_00_压缩壳_ASPACK
  15. linux双线双网卡双ip双网关设置方法,centos下双网卡双线双IP的配置方法
  16. 计算机云平台热门吗,哪个云电脑好用又便宜?国内的云游戏平台到底哪个好?
  17. FIX协议教程1-什么是FIX会话和管理消息
  18. esxi中利用ovf模板迁虚拟机
  19. Unity shader护盾特效
  20. 【转】将HTML5封装成android应用APK 文件若干方法

热门文章

  1. ie为什么那么垃圾(不是ie垃圾,是ie用的人太多了,很多在用低版本)
  2. 原生 javascript 操作 websocket
  3. Message Queue基本使用说明
  4. Linux网络服务之DHCP
  5. SQL Server中SMO备份数据库进度条不显示?
  6. 客户端主机自查DNS故障及应急解决办法
  7. 使用Google zxing生成二维码
  8. 异步消息的传递-回调机制(转)
  9. 项目经理,别让猴子跳回背上!
  10. 关于HTML中onSubmit属性的触发时机