图挖掘、社交网络分析与多关系数据挖掘
立即解锁
发布时间: 2025-08-23 00:06:22 阅读量: 6 订阅数: 21 


数据挖掘:概念与技术(第二版)精华
### 图挖掘、社交网络分析与多关系数据挖掘
在当今的数据处理领域,频繁项集挖掘和序列模式挖掘已经得到了广泛的研究。然而,许多科学和商业应用需要挖掘比频繁项集和序列模式更复杂的模式,这些模式涉及树、格、图、网络等复杂结构。其中,图作为一种通用的数据结构,在建模复杂结构及其交互方面变得越来越重要,广泛应用于化学信息学、生物信息学、计算机视觉等多个领域。本文将重点探讨图挖掘的相关内容,包括频繁子图挖掘的方法、变体和约束子结构模式的挖掘,以及图挖掘在索引、相似性搜索、分类和聚类等方面的应用。
#### 1. 图挖掘概述
图在建模复杂结构方面具有重要作用,如电路、图像、化学化合物等。随着对大量结构化数据分析需求的增加,图挖掘成为数据挖掘领域的一个活跃且重要的主题。在各种图模式中,频繁子结构是可以在图集合中发现的最基本模式,对于表征图集合、区分不同图组、对图进行分类和聚类、构建图索引以及在图数据库中进行相似性搜索都非常有用。
#### 2. 频繁子图挖掘方法
在介绍图挖掘方法之前,需要先了解一些与频繁图挖掘相关的基本概念。对于图 \(g\),其顶点集记为 \(V(g)\),边集记为 \(E(g)\)。标签函数 \(L\) 将顶点或边映射到标签。如果存在从图 \(g\) 到图 \(g'\) 的子图同构,则 \(g\) 是 \(g'\) 的子图。给定一个带标签的图数据集 \(D = \{G_1, G_2, \cdots, G_n\}\),支持度 \(support(g)\)(或频率 \(frequency(g)\))定义为 \(D\) 中 \(g\) 作为子图出现的图的百分比(或数量)。支持度不低于最小支持阈值 \(min sup\) 的图称为频繁图。
发现频繁子结构通常包括两个步骤:首先生成频繁子结构候选,然后检查每个候选的频率。大多数关于频繁子结构发现的研究都集中在第一步的优化上,因为第二步涉及子图同构测试,其计算复杂度非常高(即 NP 完全问题)。
频繁子结构挖掘主要有两种基本方法:基于 Apriori 的方法和模式增长方法。
##### 2.1 基于 Apriori 的方法
基于 Apriori 的频繁子结构挖掘算法与基于 Apriori 的频繁项集挖掘算法具有相似的特点。该方法从小“规模”的图开始搜索频繁图,并通过生成具有额外顶点、边或路径的候选项以自底向上的方式进行。图的规模定义取决于所使用的算法。
AprioriGraph 是基于 Apriori 的频繁子结构挖掘的通用框架,采用逐层挖掘的方法。在每次迭代中,新发现的频繁子结构的规模增加 1。这些新子结构首先通过合并两个相似但略有不同的频繁子图生成,然后检查新形成图的频率,将频繁的图用于下一轮生成更大的候选项。
```plaintext
Algorithm: AprioriGraph. Apriori-based frequent substructure mining.
Input:
D, a graph data set;
min sup, the minimum support threshold.
Output:
Sk, the frequent substructure set.
Method:
S1 ← frequent single-elements in the data set;
Call AprioriGraph(D, min sup, S1);
procedure AprioriGraph(D, min sup, Sk)
(1) Sk+1 ← ∅;
(2) for each frequent gi ∈ Sk do
(3)
for each frequent gj ∈ Sk do
(4)
for each size (k + 1) graph g formed by the merge of gi and gj do
(5)
if g is frequent in D and g ∉ Sk+1 then
(6)
insert g into Sk+1;
(7) if Sk+1 ≠ ∅ then
(8)
AprioriGraph(D, min sup, Sk+1);
(9) return;
```
近期基于 Apriori 的频繁子结构挖掘算法包括 AGM、FSG 和路径连接方法。AGM 使用基于顶点的候选生成方法,每次迭代将子结构规模增加一个顶点;FSG 采用基于边的候选生成策略,每次调用将子结构规模增加一条边;路径连接方法根据图的不相交路径数量对图进行分类,并通过合并具有 \(k\) 条不相交路径的子结构生成具有 \(k + 1\) 条不相交路径的子结构模式。
然而,基于 Apriori 的算法在合并两个大小为 \(k\) 的频繁子结构以生成大小为 \(k + 1\) 的图候选项时存在相当大的开销。为了避免这种开销,最近开发了非 Apriori 算法,其中大多数采用模式增长方法。
##### 2.2 模式增长方法
基于 Apriori 的方法由于其逐层候选生成的方式,必须使用广度优先搜索(BFS)策略。在确定大小为 \(k + 1\) 的图是否频繁之前,通常需要完成大小为 \(k\) 的子图的挖掘。而模式增长方法在搜索方法上更加灵活,可以使用广度优先搜索和深度优先搜索(DFS),后者消耗的内存更少。
图 \(g\) 可以通过添加新边 \(e\) 进行扩展,新形成的图记为 \(g \diamond_x e\)。如果 \(e\) 引入了新顶点,则新图记为 \(g \diamond_x^f e\);否则,记为 \(g \diamond_x^b e\),其中 \(f\) 或 \(b\) 表示扩展是向前还是向后方向。
PatternGrowthGraph 是基于模式增长的频繁子结构挖掘的通用框架,对于每个发现的图 \(g\),它递归地进行扩展,直到发现所有嵌入 \(g\) 的频繁图。然而,该算法效率不高,因为同一个图可能会被多次发现,导致计算效率低下。为了减少重复图的生成,设计了一些新算法,例如 gSpan 算法。
```plaintext
Algorithm: PatternGrowthGraph. Simplistic pattern growth-based frequent substructure
mining.
Input:
g, a frequent graph;
D, a graph data set;
min sup, minimum support threshold.
Output:
The frequent graph set, S.
Method:
S ← ∅;
Call PatternGrowthGraph(g, D, min sup, S);
procedure PatternGrowthGraph(g, D, min sup, S)
(1) if g ∈ S then return;
(2) else insert g into S
```
0
0
复制全文
相关推荐










