入度中心性(In-degree centrality)
中心性(centrality)用來衡量節點在網路中的重要性。中心性有許多種類,在 Twitter 網路中各自代表的意義略有不同。我們先從度數中心性(degree centrality)著手,因為它的計算方式直觀,解釋也容易理解。
對像 Twitter 這樣的有向網路,需要特別區分入度與出度中心性,尤其是在轉推(retweet)網路中。轉推網路的入度中心性代表那些被大量轉推的使用者。
networkx 已以 nx 匯入。
另外,網路 G_rt 與 G_reply 以及 column_names = ['screen_name', 'degree_centrality'] 已為你載入。
本練習屬於課程
使用 Python 分析社群媒體資料
練習說明
- 使用
nx.in_degree_centrality()計算轉推網路的入度中心性,並將結果存為rt_centrality。 - 以相同方式計算回覆網路的入度中心性,並將結果存為
reply_centrality。 - 將回覆網路中心性的項目(也就是鍵值配對的 tuple)傳入 DataFrame 建構子。
- 對轉推網路也做一次相同的處理。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Generate in-degree centrality for retweets
rt_centrality = ____
# Generate in-degree centrality for replies
reply_centrality = ____
# Store centralities in DataFrame
rt = pd.DataFrame(list(____), columns = column_names)
reply = pd.DataFrame(list(____), columns = column_names)
# Print first five results in descending order of centrality
print(rt.sort_values('degree_centrality', ascending = False).head())
# Print first five results in descending order of centrality
print(reply.sort_values('degree_centrality', ascending = False).head())