目录

  • 1 第一章 数据仓库概述
    • 1.1 授课安排
    • 1.2 数据仓库及其历史
      • 1.2.1 数据仓库的概念
        • 1.2.1.1 本节视频
      • 1.2.2 数据仓库特征
        • 1.2.2.1 本节视频
    • 1.3 数据仓库系统结构
      • 1.3.1 数据仓库系统的组成
        • 1.3.1.1 本节视频
      • 1.3.2 ETL
        • 1.3.2.1 本节视频
      • 1.3.3 数据仓库和数据集市的关系
      • 1.3.4 元数据及其管理
      • 1.3.5 数据集市和元数据管理视频
    • 1.4 数据仓库系统开发工具
    • 1.5 数据仓库与操作型数据库的关系
      • 1.5.1 本节视频内容
  • 2 第二章 数据仓库设计
    • 2.1 授课安排
    • 2.2 数据仓库设计概述
    • 2.3 数据仓库的规划和需求分析
    • 2.4 数据仓库的建模
    • 2.5 数据仓库的物理模型设计
    • 2.6 数据仓库的部署和维护
  • 3 第三章 OLAP技术
    • 3.1 授课安排
    • 3.2 OLAP概述
    • 3.3 OLAP的多维数据模型
    • 3.4 OLAP实现
  • 4 第四章 数据
    • 4.1 课程资料
  • 5 第五章 数据挖掘概述
    • 5.1 授课安排
    • 5.2 什么是数据挖掘?
    • 5.3 数据挖掘系统
    • 5.4 视频
    • 5.5 数据挖掘过程
  • 6 第六章 关联分析
    • 6.1 授课安排
    • 6.2 关联分析概念
    • 6.3 Apriori算法
    • 6.4 FP-growth树
    • 6.5 多层关联规则
    • 6.6 【扩充知识】机器学习——关联规则——支持度(support)、置信度(confidence)、提升度(Lift)
  • 7 第七章 序列模式挖掘
    • 7.1 序列模式挖掘概述
    • 7.2 AprioriAll算法
    • 7.3 AprioriSome算法
    • 7.4 FreeSpan算法
    • 7.5 PrefixSpan算法
  • 8 第八章 聚类分析
    • 8.1 聚类概述
  • 9 分类算法
    • 9.1 课件
  • 10 实验1 python基础
    • 10.1 讲解文本内容
    • 10.2 课程PDF
    • 10.3 实验代码
    • 10.4 实验报告封皮
  • 11 实验2-python
    • 11.1 讲解文本内容
    • 11.2 实验代码
    • 11.3 实验报告封面
  • 12 实验3--python
    • 12.1 讲解文本内容
    • 12.2 实验代码
    • 12.3 实验报告封面
  • 13 实验4--python
    • 13.1 讲解文本内容
    • 13.2 21.1实验代码
    • 13.3 实验内容2
    • 13.4 实验内容3
    • 13.5 实验报告封面
  • 14 实验5--python
    • 14.1 文本内容-NumPy模块
    • 14.2 第三方可视化数据分析图表
    • 14.3 数据
    • 14.4 思考题
    • 14.5 实验报告封面
  • 15 实验6--python
    • 15.1 实验 NumPy矩阵的基本操作
    • 15.2 实验 关联规则算法
    • 15.3 实验 商品零售购物篮分析
    • 15.4 实验报告封面
  • 16 实验7--python
    • 16.1 实验1 用关联规则分析方法推荐电影
    • 16.2 实验2 FP-growth算法
    • 16.3 实验3 教育平台的线上课程推荐策略
    • 16.4 实验报告封面
  • 17 实验8-python
    • 17.1 实验1 购物车分析
    • 17.2 实验2 基于关联规则的文本分析
  • 18 实验9--python
    • 18.1 实验1 聚类分析
    • 18.2 实验2 航空公司客户价值分析
    • 18.3 实验3 运输车辆安全驾驶行为分析
    • 18.4 实验报告封面
PrefixSpan算法

PrefixSpan算法






PrefixSpan算法和FreeSpan算法一样,也是采用分治的思想,不断产生序列数据库的多个更小的投影数据库,然后在各个投影数据库上进行序列模式挖掘。

但PrefixSpan算法克服FreeSpan算法中序列模式在任何位置增长问题,它只基于频繁前缀投影,确保序列向后增长,同时也缩减投影数据库的大小。

定义6.8  设序列中每个事件中的项按字典顺序排列。给定序列α=<e1e2…en>(其中ei对应序列数据库S中的一个频繁事件),β=<e1'e2'…em'>(m≤n),如果ei'=ei(i≤m-1),em'⊆em,并且(em-em')中的所有频繁项按字母顺序排在em'之后,则称β是α的前缀。

例如,<a>、<aa>、<a(ab)>和<a(abc)>都是序列s=<a(abc)(ac)d(cf)>的前缀,而<ab>和<a(bc)>却不是s的前缀。

定义6.9   给定序列α=<e1e2…en>(其中ei对应序列数据库S中的一个频繁事件),β=<e1e2…em-1em'>(m≤n)是α的前缀。

序列γ=<em''em+1…en>称为α的相对于β的后缀,记为γ=α/β。这里e''=(em-em'),如果e''非空,则该后缀记为<(_em''中的项)em+1…en>。也可以记为α=β·γ。

注意,如果β不是α的子序列,则α的相对于β的后缀为空。

例如,若序列s=<a(abc)(ac)d(cf)>,则<(abc)(ac)d(cf)>是s的相对于前缀<a>的后缀。<(_bc)(ac)d(cf)>是s的相对于前缀<aa>的后缀,其中(_b)表示该前缀的最后一个事件是a,a与b一起形成一个事件。<(_c)(ac)d(cf)>是s的相对于前缀<a(ab)>的后缀。如图6.14所示。

定义6.10  设α是序列数据库S中的一个序列模式。α投影数据库记为S|α,它是S中所有以α为前缀的序列相对于α的后缀的集合。

投影数据库中的支持度:设α为序列数据库S中的一个序列,序列β以α为前缀,则β在α的投影数据库S|α中的支持度为S|α中满足条件β⊆α·γ的序列γ的个数。

定理6.11   基于前缀和后缀的概念,挖掘序列模式的问题可以分解成一系列子问题:

(1)设{<x1>,<x2>,…,<xn>}是序列数据库S中长度为1序列模式的集合。S中序列模式全集可以划分成n个互不相交的子集。第i(1≤i≤n)个子集是以<xi>为前缀的序列模式集合。

(2)设α是一个长度为l的序列模式,{β1,β2,…,βm}是所有以α为前缀的长度为(l+1)的序列模式的集合。除α本身外,以α为前缀的序列模式集合可划分为m个不相交的子集,第j(1≤j≤m)个子集是以<βj>为前缀的序列模式集合。

PrefixSpan算法的其本过程是

扫描序列数据库S,生成所有长度为1的序列模式;根据长度为1的序列模式,生成相应的投影数据库S1、S2、…、Sn,在各投影数据库上重复上述步骤,直到在该投影数据库上不能产生序列模式为止。