Как убрать топ клики с узлами - PullRequest
0 голосов
/ 26 июня 2018

Итак, я использовал кластеризацию , чтобы получить коэффициент кластеризации для всех узлов на графике, как это

G=nx.complete_graph(40)
clus_coeff = nx.clustering(G)

Теперь я хочу удалить клики наибольшего размера , содержащие эти узлы. Я просто хочу удалить клики с Top 5 узлами, упорядоченными по коэффициенту кластеризации. Я не совсем уверен, как поступить

1 Ответ

0 голосов
/ 26 июня 2018

Во-первых, если вы собираетесь удалить самую большую клику из полного графика, вы получите пустой граф.

Во-вторых, вы можете использовать функцию clique_contained_node из networkx, чтобы получить список клик, содержащих определенный узел, а затем удалить их следующим образом

clus_coeff = nx.clustering(G)

for node in clus_coeff.keys():
    #Check if the node is present in the updated graph
    if G.has_node(node):
        #Find all cliques containing the node
        all_cliques = nx.cliques_containing_node(G,node)
        #If no cliques found, then continue
        if len(all_cliques)<1:
            continue
        elif len(all_cliques)==1:
            #If only one clique is present
            largest_cliq = all_cliques
        else:
            #Find the larges sized clique
            largest_cliq = max(all_cliques, key=len)
        #Remove the nodes 
        for v in largest_clq:
            G.remove_node(v)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...