Trích xuất trung bình degree centrality theo ngày trên phân hoạch sinh viên
Trong phần này, bạn sẽ kiểm tra xem trung bình degree centrality trên tất cả các nút có tương quan với số lượng cạnh được vẽ theo thời gian hay không. Có thể sẽ không có tương quan mạnh; bạn sẽ trực quan hóa để xem thực tế như thế nào.
Bài tập này là một phần của khóa học
Phân tích mạng nâng cao với Python
Hướng dẫn bài tập
- Khởi tạo một đồ thị mới tên
G_subchứa một tập con các cạnh. - Thêm các nút từ
G, bao gồm cả siêu dữ liệu của nút. - Thêm các cạnh thỏa điều kiện bằng phương thức
.add_edges_from(). - Lấy phép chiếu sinh viên
G_student_subtừG_subbằng hàmnx.bipartite.projected_graph(). - Tính degree centrality của phép chiếu sinh viên bằng
nx.degree_centrality()(không dùng phiên bản bipartite). - Thêm giá trị trung bình degree centrality vào danh sách
mean_dcs. Nhớ chuyểndc.values()thành list trước. - Nhấn 'Submit Answer' để xem biểu đồ!
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
from datetime import datetime, timedelta
import numpy as np
import networkx as nx
import matplotlib.pyplot as plt
# Initialize a new list: mean_dcs
mean_dcs = []
curr_day = dayone
td = timedelta(days=2)
while curr_day < lastday:
if curr_day.day == 1:
print(curr_day)
# Instantiate a new graph containing a subset of edges: G_sub
G_sub = ____
# Add nodes from G
G_sub.____(____)
# Add in edges that fulfill the criteria
G_sub.____([(u, v, d) for u, v, d in G.edges(data=True) if d['date'] >= curr_day and d['date'] < curr_day + td])
# Get the students projection
G_student_sub = ____
# Compute the degree centrality of the students projection
dc = ____
# Append mean degree centrality to the list mean_dcs
mean_dcs.____(np.mean(____(dc.values())))
# Increment the time
curr_day += td
plt.plot(mean_dcs)
plt.xlabel('Time elapsed')
plt.ylabel('Degree centrality.')
plt.show()