iGraph——图挖掘助力社会网络分析
社交网络(如Facebook,Twitter)可以完整地表现人们的生活。人们用不同的方式与他人互动,并且这些信息都可以在社交网络中抓取到。挖掘某个站点的有用信息可以帮助一些团体增加竞争力。 我最近无意中发现一款叫做“iGraph”的工具,它提供了一些非常有效的挖掘功能。以下列举几条我觉得有意思的: 创建图表 图表由节点和连线组成,两者都可以附上一系列属性值(键/值对)。此外,连线可以是有向的也可以是无向的,还可以给它加上权重。 > library(igraph) # Create a directed graph g <- graphc(0,1 23),0)"> directed=T g Vertices:4 EdgesDirected TRUE []0->123 # Create a directed graph using adjacency matrix m matrixrunif4* nrow=[,]0.40863890.21609240.15579890.28962390.46694560.10710710.12906730.37158090.20316780.39116910.59062730.74177640.88081190.76874930.97343230.4487252.adjacencym 0.55 plotg layoutlayoutfruchtermanreingold>
iGraph也提供了多种创建各种图形的图表的简单方法 #Create a full graph g1 full g1 6 FALSE --5 #Create a ring graph g2 ring g2 #Combine 2 graphs%du79678differenceF)) # Create a latticelattice # Create a treetree12 childreng1g2tilford)
iGraph还提供了另外两种图表生成的机制。“随机图表”可以在任意两个节点之间进行连线。而“优先连接”会给已经拥有较大度数的节点再增加连线(也就是多者更多)。 # Generate random graph,fixed probability erdosrenyigame200.3 vertexlabelNAsize # Generate random graph,fixed number of arcs15 type='gnm' # Generate preferential attachment graph barabasi60 power zeroappeal1.3
中心性计算 在细节方面,我们可以看到各个节点的统计信息。根据这些数字可以测出节点的“中心性” # Degree # Closeness (inverse of average dist) closeness0.44444440.53333330.50000000.61538460.8000000 # Betweenness betweenness0.83333332.33333330.00000006.333333318.8333333 # Local cluster coefficient"local"1.00000000.66666670.1333333 # Eigenvector centrality evcent$vector 0.30198570.41971530.53812940.66931420.5170651 # Now rank them orderclosenessbetweennessevcent$vector9 从中Drew Conway发现拥有低“特征向量中心性”和高“中间性”的人是很重要的联系人,而拥有高“特征向量中心性”和低“中间性”的人与重要的人有关联。现在我们来绘制“特征向量中心性”和“中间性”的图表。 # Create a graph100u lay # Plot the eigevector and betweenness centrality text cex0.6 pos)[laycex (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |