Python數據科學入門
Dmitry Zinoviev著
熊子源 譯
第7章 使用網絡數據
第38單元 概念剖析
圖的元素、類型和密度:
名詞 | 說明 |
---|---|
多圖 | 圖中存在平行邊(節點A可以通過多條邊連接到節點B) |
循環 | 節點A到節點A的邊 |
簡單圖 | 不存在平行邊和循環的圖 |
邊中可以存在多種類型:
權重、數字、布爾和字符串類型的變量。
圖的密度:
圖與完全圖的接近程度。一個具有e條邊的n個節點的有向圖,其密度為:
d = e/[n(n-1)]
。相應的無向圖密度為:
d = 2e/[n(n-1)]
圖的結構:
名詞 | 說明 |
---|---|
連通分量 | 集合中的每個節點都具有到達集合中的所有其他節點的路徑(一組節點的集合) |
GCC(巨型連通分量) | 最大的連通分量 |
橋 | 移除這條單邊后圖就會被分開的邊 |
團 | 每個節點都與集合中的其他節點 直接 相連(一組節點的集合) |
最大團 | 圖中最大的團 |
極大團 | 一個團不能通過向其中添加另一個節點而擴大(最大團一定是極大團;極大團不一定是最大團) |
星形圖 | 集合中存在一個節點與其他所有節點相連接,但是其他節點之間不存在連接 |
領域 | 直接與節點A相連接的節點(G(A)) |
中心性:
-
度中心性
節點A的度中心性是A的鄰居節點個數 -
接近中心性
節點A的接近中心性是其他所有節點到節點A的平均最短路徑長度LBA的倒數:
-
中介中心性
節點A的中介中心性是指:所有兩個節點之間的最短路徑中,經過A點的路徑數量與最短路徑總數量之比 -
特征矢量中心性
節點A的特征矢量中心性被定義為:A的所有鄰居節點的特征矢量中心性的加權和:
第39單元 網絡分析序列
典型的網絡分析序列包含以下幾個步驟:
- 識別離散實體以及實體之間的關系。實體轉化為網絡節點,實體之間的關系轉化為網絡節點的邊;
- 計算各種網絡度量。密度,分量,GCC的大小,中心性等;
- 識別網絡社區;
- 對結果進行解釋,并生成一個報告。
第40單元 使用networkx
探索和分析網絡:
NetworKit:
一種高效的、可并行化的網絡分析工具包。可以與matplotlib,scipy,numpy,pandas和networkx相結合,進一步增加了這個模塊的吸引力。詳細內容可以參考官網:https://pypi.org/project/networkit/
Gephi:
各種網絡和復雜系統的交互式可視化探索平臺。詳細內容可以參考官網:https://gephi.org/
團和社區結構:
find_cliques()
檢測出圖中最大的團(不能直接用于有向圖)
isolates()
檢測圖中的孤立節點
best_partition()
使用Louvain方法并返回社區的劃分結果,劃分結果是一個以節點標簽作為索引的字典,并用不同的數字序號區分不同的社區
Modularity()
給出社區的模塊度(來判斷網絡結構是否清晰(0.5))
輸入和輸出:
類型 | 讀 | 寫 | 文件后綴 |
---|---|---|---|
鄰接列表 | read_adjlist(f) | write_adjlist(G,f) | 無特定后綴 |
Edge list | read_edgelist(f) | write_edgelist(G,f) | 無特定后綴 |
GML | read_gml(f) | write_gml(G,f) | .gml |
GraphML | read_graphml(f) | write_graphml(G,f) | .graphml |
Pajek | read_pajek(f) | write_pajek(G,f) | .net |
(
"Every mountain is unclimbable until someone climbs it."--《Downton Abbey》
)
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
