图数据挖掘——图信息获取及存储
在基本概念的文章中介绍了图和图数据挖掘的概念,可能有不是很到位,甚至有些观点存在偏差,希望大家多多指出,相互学习。本篇将介绍如何获取图的信息和存储。
在我们现实生活中,图是无处不在。比如:城市交通、当前比较火的高铁、电子地图以及人与人之间的关系等。这些都是可以通过图来进行描述,下面将介绍如何从这些中获取图的信息。最近有些网友问我电子地图中如何获取图信息,我不知道是我理解错了还是我的认识不够,我的理解是你问我的是如何用一个图描述一个他,不知道是不是这样,我就按这样的理解去解答。首先我认为一个电子地图应用肯定是可以获取地图中各个目标地点和目标地点的线路,以及线路的长度。那么这些目标地点就是图中的节点,而地点之间的线路就是图中的边,我觉得这个不是很难理解。边的权重可以是线路的长度,也可以在加上一些服务质量上的属性,比如说:线路的路况,交通流量以及可通行的交通工具等等,所以这就显得更加的人性化。这就是如何从电子地图中挖掘图信息,这是我个人的理解,可能存在一定的偏差,望多多包涵。再举个例子:人与人之间的关系,它也可以通过图来描述。我们经常在各大论坛会发现“可能你认识的人”这个提示。我个人觉得就是通过图来进行得到的。我们QQ空间上常会看到这些,这是怎么实现的呢?首先说一说是怎么把人与人之间的关系描述成图,“人“可想而知就是图中的一个节点,而边就是将两个人连接起来的桥梁(关系),这里边的权重可以通过每个节点存在共同连接的节点个数来决定(此处的共同连接点的个数就是在QQ中的共同好友个数),这里就可以获得相应的边的权重,这样就将人与人之间的关系构成了图,我还是举QQ好友来说明吧(此处将详细的介绍我个人认为在QQ中的“可能认识的人”实现的过程),那么我们知道我们和我们自己的QQ好友之间都存在一个边,就是存在一个关系,那么这个关系的权重就依赖于你和你好友拥有相同好友的个数了,比如说:你和你的一个同学A是QQ好友,可能你们班的同学联系都比较紧密,都相互的加为了好友,那么你和你的同学A就存在很多的相同的好友,那么你和你同学A之间的边的权重肯定比较大,那么你和一个普通的好友的关系可能就不是那么紧密了,因为你们拥有相同好友的个数很少。人和人之间关系图已经可以描述了,那么如何获得“可能认识的人”呢?那就是通过你将你朋友那边的好友获取过来,就是通过你的QQ好友进行对图的扩展,我们也发现,在“可能认识的人”中只会出现几个,而不是全部,那么它就需要排序了,我在举个例子说明:还是你和的同学A是QQ好友,同时你同学A和你的同学另一个同学B是好友,但是你和同学B不是好友,那么就可以通过A同学来确定你可能和同学B存在一个潜在的关系,那么如何确定你关系度的强弱呢?那么还是要看你和同学B之间存在相同好友的个数。这里就用到了图的遍历,你的QQ用户是通过你同学A进行扩展,从而找出和你有潜在关系的好友。这是我个人认为这一功能的实现方案。可能存在偏差(由于本人还未有机会进入腾讯去看看
)。
上面已将详细的讲了图信息的获取,那么我们获取信息后如何存储呢?一般探讨这个问题的前提是图非常大,如:QQ好友图。那么图的详细信息肯定是存储在数据库中的,我们将节点存储在数据库中,每个节点的邻接节点也存储起来,因为我们需要通过邻接节点来构造图中的边,那么权重也需要进行存储,这是对于图的信息是不做经常性变动的处理方法。如果经常的变动那就得需要从数据库中读取信息了,图信息存储到了数据库中后,当我们需要遍历的时候我们只需取得节点的编号就可以,不需要取出所有的节点的详细信息,这为了节省内存考虑。我们用一个节点的编号和边的编号来构造一个图,通过对图的遍历来实现对图中的信息进行挖掘。
在研究领域,最常用的数据源是DBLP(下载可以到google一下“dblp db”)。它是一个书目录数据库,它是存储每篇论文的作者,以及论文之间的引用关系,这就是一个图。这个数据源是一个xml文件,如何将这个xml文件转化为图的信息呢?在这个xml文件中主要存储的信息是:author papre cite write(作者、论文、引用、写),其中我们知道引用和写分别是了论文和论文之间的关系、论文和作者之间的关系。它们是将图中的节点连接起来的重要节点,如果没有它们,那么整个图的信息就是孤立的,那么节点之间的联系就是图中的边,边的权重需要考虑更加详细的内容(此处由于存在研究的保密性,就不方便透露了)。此处就将这样的数据构成了图。
总结:图的信息获取不能用一种相同的思维去看待,它需要你对图的理解,要明白图中的节点不只是简单的节点(数据结构中的),它可以描述任何信息。而边也一样,他也可以是任何事物之间的关联。当你理解了这些后,你将发现图在我们生活中真的是无处不在,甚至在你自己的身体上都能发现!
欢迎浏览!后期可能将介绍一下图的搜索和遍历方面的知识,欢迎继续关注!再次申明,如有不对的地方还请你多多指出,欢迎留言、评论!谢谢!
在我们现实生活中,图是无处不在。比如:城市交通、当前比较火的高铁、电子地图以及人与人之间的关系等。这些都是可以通过图来进行描述,下面将介绍如何从这些中获取图的信息。最近有些网友问我电子地图中如何获取图信息,我不知道是我理解错了还是我的认识不够,我的理解是你问我的是如何用一个图描述一个他,不知道是不是这样,我就按这样的理解去解答。首先我认为一个电子地图应用肯定是可以获取地图中各个目标地点和目标地点的线路,以及线路的长度。那么这些目标地点就是图中的节点,而地点之间的线路就是图中的边,我觉得这个不是很难理解。边的权重可以是线路的长度,也可以在加上一些服务质量上的属性,比如说:线路的路况,交通流量以及可通行的交通工具等等,所以这就显得更加的人性化。这就是如何从电子地图中挖掘图信息,这是我个人的理解,可能存在一定的偏差,望多多包涵。再举个例子:人与人之间的关系,它也可以通过图来描述。我们经常在各大论坛会发现“可能你认识的人”这个提示。我个人觉得就是通过图来进行得到的。我们QQ空间上常会看到这些,这是怎么实现的呢?首先说一说是怎么把人与人之间的关系描述成图,“人“可想而知就是图中的一个节点,而边就是将两个人连接起来的桥梁(关系),这里边的权重可以通过每个节点存在共同连接的节点个数来决定(此处的共同连接点的个数就是在QQ中的共同好友个数),这里就可以获得相应的边的权重,这样就将人与人之间的关系构成了图,我还是举QQ好友来说明吧(此处将详细的介绍我个人认为在QQ中的“可能认识的人”实现的过程),那么我们知道我们和我们自己的QQ好友之间都存在一个边,就是存在一个关系,那么这个关系的权重就依赖于你和你好友拥有相同好友的个数了,比如说:你和你的一个同学A是QQ好友,可能你们班的同学联系都比较紧密,都相互的加为了好友,那么你和你的同学A就存在很多的相同的好友,那么你和你同学A之间的边的权重肯定比较大,那么你和一个普通的好友的关系可能就不是那么紧密了,因为你们拥有相同好友的个数很少。人和人之间关系图已经可以描述了,那么如何获得“可能认识的人”呢?那就是通过你将你朋友那边的好友获取过来,就是通过你的QQ好友进行对图的扩展,我们也发现,在“可能认识的人”中只会出现几个,而不是全部,那么它就需要排序了,我在举个例子说明:还是你和的同学A是QQ好友,同时你同学A和你的同学另一个同学B是好友,但是你和同学B不是好友,那么就可以通过A同学来确定你可能和同学B存在一个潜在的关系,那么如何确定你关系度的强弱呢?那么还是要看你和同学B之间存在相同好友的个数。这里就用到了图的遍历,你的QQ用户是通过你同学A进行扩展,从而找出和你有潜在关系的好友。这是我个人认为这一功能的实现方案。可能存在偏差(由于本人还未有机会进入腾讯去看看

上面已将详细的讲了图信息的获取,那么我们获取信息后如何存储呢?一般探讨这个问题的前提是图非常大,如:QQ好友图。那么图的详细信息肯定是存储在数据库中的,我们将节点存储在数据库中,每个节点的邻接节点也存储起来,因为我们需要通过邻接节点来构造图中的边,那么权重也需要进行存储,这是对于图的信息是不做经常性变动的处理方法。如果经常的变动那就得需要从数据库中读取信息了,图信息存储到了数据库中后,当我们需要遍历的时候我们只需取得节点的编号就可以,不需要取出所有的节点的详细信息,这为了节省内存考虑。我们用一个节点的编号和边的编号来构造一个图,通过对图的遍历来实现对图中的信息进行挖掘。
在研究领域,最常用的数据源是DBLP(下载可以到google一下“dblp db”)。它是一个书目录数据库,它是存储每篇论文的作者,以及论文之间的引用关系,这就是一个图。这个数据源是一个xml文件,如何将这个xml文件转化为图的信息呢?在这个xml文件中主要存储的信息是:author papre cite write(作者、论文、引用、写),其中我们知道引用和写分别是了论文和论文之间的关系、论文和作者之间的关系。它们是将图中的节点连接起来的重要节点,如果没有它们,那么整个图的信息就是孤立的,那么节点之间的联系就是图中的边,边的权重需要考虑更加详细的内容(此处由于存在研究的保密性,就不方便透露了)。此处就将这样的数据构成了图。
总结:图的信息获取不能用一种相同的思维去看待,它需要你对图的理解,要明白图中的节点不只是简单的节点(数据结构中的),它可以描述任何信息。而边也一样,他也可以是任何事物之间的关联。当你理解了这些后,你将发现图在我们生活中真的是无处不在,甚至在你自己的身体上都能发现!
欢迎浏览!后期可能将介绍一下图的搜索和遍历方面的知识,欢迎继续关注!再次申明,如有不对的地方还请你多多指出,欢迎留言、评论!谢谢!