मैं पायथन में नेटवर्कएक्स लाइब्रेरी का उपयोग करके ग्राफ के डिग्री के नोड्स के औसत क्लस्टरिंग सी (के) की गणना कैसे कर सकता हूं? एकमात्र कार्य जो मैं पा सकता हूं वह नोड्स (उनमें से कुछ या सभी) के लिए है और दूसरा पूरे ग्राफ के लिए है।

2
Jak 29 जिंदा 2020, 20:43

1 उत्तर

सबसे बढ़िया उत्तर

आप k डिग्री के सभी नोड्स प्राप्त कर सकते हैं और फिर औसत क्लस्टरिंग डिग्री प्राप्त कर सकते हैं

उदाहरण:

>>> G=nx.complete_graph(5)
>>> k=4
>>> nodes_degree_k = [u for u in G.nodes() if G.degree(u) == k]
>>> clustering_coeff = nx.clustering(G, nodes_degree_k)
>>> sum(clustering_coeff.values())/len(clustering_coeff)
1.0

इसे केवल नोड्स को समूहीकृत करके हर डिग्री तक बढ़ाया जा सकता है।

from collections import defaultdict

d = defaultdict(list)

for u in G.nodes():
   d[G.degree(u)].append(u)

for degree in d:
   clustering_coeff = nx.clustering(G, d[degree])
   print(degree, sum(clustering_coeff.values())/len(clustering_coeff))
2
abc 30 जिंदा 2020, 02:14