子图模式

本文主要是对Xifeng Yan和Jiawei Han 发表于2002年的论文《gSpan:Graph-Based Substructure Pattern Mining》的解读

子图模式:基于图的数据挖掘,挖掘图数据库中的频繁子结构

Introduction


2000,Inokuchi结合Apriori算法和数学图论知识,提出了AGM算法
2001,Kuramochi对AGM进行了修改并引入了一些剪枝策率,提出FSG算法
2002,Jiawei Han等人提出了gSpan算法,有效的挖掘出图数据集中的频繁连通子图


注:
连通图:无向图G,图中任意两个节点都存在路径可达,则图G称为连通图

Applications of Graph Patterns
子图模式_第1张图片

节点表示个体,边表示个体之间的亲密属性

频繁子图挖掘的核心是图的同构测试

The Apriori-like algorithms suffer two additional cost:
(1)Costly subgraph isomorphism test
(2)Costly candidate generation

gSpan
不产生候选集,gSpan能够在图数据库中建立一个新的字典排序并且为每一个图赋予一个最小DFS码作为该图的规范标签(无向连通图)

大致过程:Each graph is assigned a unique minimum DFS code .Based on DFS codes,a hierarchical search tree is constructed.By pre-order traversal of the tree,gSpan discovers all frequent subgraphs with required support

图的同构测试

Preliminary Concepts

子图模式_第2张图片
图同构:在两图的节点集合之间建立一个映射关系,G1两顶点对应的边和G2两顶点对应的边相同
f:保持了边的连接性以及顶点标签和边标签不变
(上面的五边形和五角星是同构图)

子图模式_第3张图片

注:只能挖掘连同子图

Lexicographic Ordering in Graphs

子图模式_第4张图片
这里写图片描述
最右路径在后面有详细介绍

子图模式_第5张图片
子图模式_第6张图片
子图模式_第7张图片
子图模式_第8张图片
DFS Tree 一个节点都有一个前沿,可以有多个后沿
DFS code:按DFS的发现顺序添加节点,与DFS中已存在的节点进行连接(按顺序进行连接),先添加前沿,再添加后沿。

子图模式_第9张图片
DFS Code标签按照字典顺序进行比较得到Minimum DFS Code

Example

子图模式_第10张图片
子图模式_第11张图片
添加Gi 中互不相同的标签元组作为前向扩张,计算每条边的支持度,选出频繁一边图

子图模式_第12张图片
子图模式_第13张图片
子图模式_第14张图片
生成候选子图C1,C2这里涉及到最优路径扩展,在下节详细描述。
子图模式_第15张图片
子图模式_第16张图片
子图模式_第17张图片
子图模式_第18张图片
子图模式_第19张图片
子图模式_第20张图片
子图模式_第21张图片
子图模式_第22张图片
子图模式_第23张图片
最终结果
子图模式_第24张图片
s4、s5是非频繁的
s9同构于s8是非频繁的

最右路径扩展

子图模式_第25张图片
子图模式_第26张图片
子图模式_第27张图片
子图模式_第28张图片

gSpan##实验

gSpan是一个频繁子图挖掘算法,这个程序使用Python实现了gSpan算法。
无向图频繁子图挖掘
数据集为论文中的Chemical Compound Dataset
部分实验结果:
子图模式_第29张图片
子图模式_第30张图片

你可能感兴趣的:(数据挖掘)