图数据挖掘浅析
互联网发展至今,数据规模越来越大,数据结构越来越复杂,而且对系统的需求越来越高。如果学习过数据结构,那么都知道图是放在最后一个结构,当你学习了图,那么应该感知到前面的链表,队列,树都是在图上面加了一些约束而派生出来的结构。所以图是一个一般性的结构,可以适应于任何结构类型的数据。
一、什么是图数据挖掘
这个话题感觉比较沉重,以至于我敲打每个字都要犹豫半天,这里我说说我对图数据挖掘的理解。数据是一个不可数名字,那么说明数据是一个没有边界的东西。而挖掘是一个很形象化的动词,一般意义上,挖掘是挖掘出对我们有用的东西,不然也不会闲着没事刨个坑把自己放进去,肯定是里面有宝贝,我们才挖掘。那么不难理解,数据挖掘就是挖掘数据里面的“宝贝”,图数据挖掘,就是以图的结构来存储、展示、思考数据,以达到挖掘出其中的“宝贝”。那这个“宝贝”是什么?这个有点主观意识来理解了,“宝贝”这个词本身就带有主观色彩,而没有一个客观的答案,不像是美女大胸、翘臀、高挑、皮肤白皙、脸蛋好看等一系列标准。那么如何理解图数据里面的“宝贝”呢?举个例子吧,例如:当今互联网产生了很多社交数据,某某关注了某某,那么某某和某某就有了关系,某某评论过某某,那么这又产生了关系,在这个里面某某就是图中的节点,而评论过,关注了则是节点之间的关系,如果某某再多点,这就形成了一个无边界的图了。那么对这个图进行关系挖掘,那么会产生很多有用的数据,比如可以推荐你可能认识的人,那就是朋友的朋友,甚至更深,这就形成了某空间好友推荐的功能。比如某宝的你可能喜欢的宝贝,可以通过图数据挖掘来实现。这就是我认为的图数据挖掘。
从学术上讲,图数据挖掘分为数据图,模式图两种。至于这两个类型的区别,由于很久没有关注这块,所以只能给出一个字面意义上的区别。数据图:则是以数据节点为基础来进行分析图,模式图:则是以数据整个关系模型来进行分析数据。可能解释存在错误,望指正。我之前主要是接触数据图一块的东西,模式图没有太多了解。关于数据图和模式图在学术界存在几个比较有参考意义的实现以及算法。数据图有:BANKS,BLINKS,Object rank;模式图有:DBXplorer(微软),DISCOVER(加利福尼亚大学),S-CBR(人民大学,就是在大学学数据库都会知道的人:王珊)。下面主要对数据图的几种实现进行简单介绍,模式图,可以找上面相关论文进行了解。
二、数据图典型实现介绍
1、BANK(Browsing and Keyword Searching in Relational Databases)
整体上说一下它的思想是通过关系数据库进行存储图结构的数据加上Dijkstra算法来进行数据的存储和图数据的搜索。该算法第一步先是匹配所有关键词的关键节点,并且以每个关键节点为源节点进行一次Dijkstra算法对图进行遍历,因此可以形成和每个关键节点可达的节点堆,该堆是进行了按照到关键节点距离进行堆排序的堆。因此可以想想每个关键节点的节点堆的第一个元素则是到该关键节点最近的节点。利用这个,那么对每个节点堆一次遍历,每次遍历只取堆的第一个节点,可以得知,这个取出的节点和节点对对应的关键词是可达的,如果这个节点和所有关键节点可达,那么就可以这个节点为根节点形成一个结果树,所以需要对这个取出的节点进行标记,标记的目的就是说我这个关键节点来过这里了(有点类似到此一游的感觉)。这就是BANK的大体上的算法思想。下面提出一个流程图,帮助大家理解一下。
这种方式存在几个缺点:由于它的这个算法是需要把整个图结构加载到内存中,所以当节点数一大,那么可能会内存的限制。第二个缺点是,它的搜索是单向的,这样在效率上面存在一定的缺陷。这个算法也是我研究图数据挖掘主要研究的对象,因为比较简单,容易理解。下面针对上面两个缺陷介绍另外两个算法。
2、Bidirectional Expansion For Keyword Search on Graph Databases
这个算法则是在第一个基础上面进行了扩展,支持双向搜索。从而解决了上麦年的第二个缺陷。具体算法实现,很久没接触了,而且当时也没关注这方面的实现,所以我也不是很清楚,只是知道它实现了双向遍历。具体的可以点击标题,看它的论文。
3、BLINK BLINKS Ranked keyword searches on graphs
这个实现是解决了大图问题,通过对图进行分割,形成超图的概念,加载内存只需要把超图进来,当需要遍历这个超图节点的时候,再将超图节点里面的明细节点加载到内存,基于这个概念可以很好的解决节点数量大而受内存的限制,这个算法有点类似地图的放大镜,当需要展示某一块(超图节点)的时候,则加载当前块的内容,用户就会看到更加明细的地图信息。具体算法,可以点击标题,看看它的论文。
既然说道图,那么不得不提一下在图数据库方面最流行的neo4j。neo4j是在09年过年的时候接触的,当时是调研以何种方式来存储图数据,所以当时弄了一下,后没就没关注了。当时看neo4j真的很小,不像现在这么成熟。
三、NEO4J预览
在NEO4J官方文档里面会看到下面几点介绍图数据库。
“A Graph —records data in→ Nodes —which have→ Properties”
上面很简单明了的介绍了图是什么,图是以节点存储记录数据,而节点数据是以属性形式关联节点。
“Nodes —are organized by→ Relationships —which also have→ Properties”
这句话说明了关系在图中的作用,可以理解节点是通过关系来进行组织和管理,并且关系也可以包裹属性信息。
“Nodes —are grouped by→ Labels —into→ Sets”
在图中标签的作用就是对节点进行分组,并且同一个标签的节点会放到一个集合中,这个有点类似上面说的对图进行分割。比如:给节点贴上一个“人”的标签,那么当对图进行搜索的时候,当指定“人”这个标签的时候,那么只会找到所有人的节点,而不会找到猫,狗等节点。这样可以提高图的遍历速度,而且可以更好的管理图的节点。
“A Traversal —navigates→ a Graph; it —identifies→ Paths —which order→ Nodes”
一个路径的遍历,它可以正确的导航整个图的结构遍历,并且它可以对应一系列路径,这些路径则是将所有节点串联起来。这个解释了搜索在图中的定位,一条搜索可以对应多条路径,也就是多条结果,而每个结果包含一系列节点。
“An Index —maps from→ Properties —to either→ Nodes or Relationships”
图中的建立索引的数据来自于节点和关系的属性,并且索引会直接映射到节点和关系。这样可以通过索引遍历图中的节点和关系,以得到结果。
“A Graph Database —manages a→ Graph and —also manages related→ Indexes”
这里明确的表示了图数据是干什么的,同时也表达了NEO4J是干什么的。他是管理和维护图数据CRUD,并且维护图数据的索引建立和更新。是对图数据操作的一个对外接口。
上面是隔了四年之久,再次关注NEO4J,感觉它已经真的长大了,之前只是一个很小很小的一个基本上不会关注的项目,到今天已经发展到了图数据库的领头羊。
数据分析咨询请扫描二维码
在当今以数据为导向的商业环境中,数据分析师的角色变得越来越重要。无论是揭示消费者行为的趋势,还是优化企业运营的效率,数据 ...
2024-11-17金融数学是一门充满挑战和机遇的专业,它将数学、统计学和金融学的知识有机结合,旨在培养能够运用数学和统计方法解决复杂金融市 ...
2024-11-16在信息时代的浪潮中,大数据已成为推动创新的重要力量。无论是在商业、医疗、金融,还是在日常生活中,大数据扮演的角色都愈发举 ...
2024-11-16随着大数据技术的迅猛发展,数据已经成为现代商业、科技乃至生活各个方面的重要资产。大数据专业的毕业生在这一变革背景下,拥有 ...
2024-11-15随着大数据技术的迅猛发展,数据已经成为现代商业、科技乃至生活各个方面的重要资产。大数据专业的毕业生在这一变革背景下,拥有 ...
2024-11-15在快速演变的数字时代,数据分析已成为多个行业的核心驱动力。无论你是刚刚踏入数据分析领域,还是寻求进一步发展的专业人士,理 ...
2024-11-15Python作为一种通用编程语言,以其简单易学、功能强大等特点,成为众多领域的核心技术驱动者。无论是初学者还是有经验的编程人员 ...
2024-11-15在当今数据驱动的世界中,数据分析已成为许多行业的基础。无论是商业决策,产品开发,还是市场策略优化,数据分析都扮演着至关重 ...
2024-11-15数据分析作为现代商业和研究领域不可或缺的一部分,吸引了越来越多的初学者。然而,自学数据分析的过程中,初学者常常会遇到许多 ...
2024-11-15在当今的数据驱动世界中,机器学习方法在数据挖掘与分析中扮演着核心角色。这些方法通过从数据中学习模式和规律来构建模型,实现 ...
2024-11-15随着数据在各个行业的重要性日益增加,数据分析师在商业和技术领域的角色变得至关重要。其核心职责之一便是通过数据可视化,将复 ...
2024-11-15数据分析师的职责不仅仅局限于解析数据和得出结论,更在于将这些复杂的信息转换为清晰、易懂且具有影响力的沟通。良好的沟通能力 ...
2024-11-15数字化转型是企业提升竞争力和实现可持续发展的关键路径。面对快速变化的市场环境,以及技术的飞速发展,企业在数字化转型过程中 ...
2024-11-15CDA数据分析师认证:CDA认证分为三个等级:Level Ⅰ、Level Ⅱ和Level Ⅲ,每个等级的报考条件如下: Le ...
2024-11-14自学数据分析可能是一条充满挑战却又令人兴奋的道路。随着数据在现代社会中的重要性日益增长,掌握数据分析技能不仅能提升你的就 ...
2024-11-14数据分析相关职业选择 数据分析领域正在蓬勃发展,为各种专业背景的人才提供了丰富的职业机会。从初学者到有经验的专家,每个人 ...
2024-11-14数据挖掘与分析在金融行业的使用 在当今快速发展的金融行业中,数据挖掘与分析的应用愈发重要,成为驱动行业变革和提升竞争力的 ...
2024-11-14学习数据挖掘需要掌握哪些技能 数据挖掘是一个不断发展的领域,它结合了统计学、计算机科学和领域专业知识,旨在从数据中提取有 ...
2024-11-14统计学作为一门基于数据的学科,其广泛的应用领域和多样的职业选择,使得毕业生拥有丰厚的就业前景。无论是在政府还是企业,统计 ...
2024-11-14在当今高速发展的技术环境下,企业正在面临前所未有的机遇和挑战。数字化转型已成为企业保持竞争力和应对市场变化的必由之路。要 ...
2024-11-13