GNN学习笔记1——图的基本知识

  1. 图的表示   邻接矩阵,节点之间有连接值为1,否则0
  2. 图的特性
    1. 度   无向图:节点连接的边数;有向图: 出边数为出度,入边数为入度。
    2. 子图 由图的节点集的子集以及边集的子集构成的图 
    3. 连通分量    连通图本身为其唯一连通分量,非连通无向图有多个连通分量。
    4. 连通图    强连通图:任意两个点之间相互可达; 弱连通图:至少一对节点不满足单向连通,而去掉边的方向后是连通图。
    5. 最短路径    两个节点之间的可达经过的最少边数。
    6. 图直径    图中任意两两节点的最短路径的最大值。
  3. 结构属性
    1. 度中心性   

       GNN学习笔记1——图的基本知识

    2. 特征向量中心性    邻接矩阵最大特征值所对应的特征向量
    3. 中介中心性    

      GNN学习笔记1——图的基本知识

    4. 连接中心性

       GNN学习笔记1——图的基本知识

    5. PageRank    节点PR为指向它的节点的PR值之和,边PR为该节点PR的平均。
    6. Hits(hub、authority)    节点hub值为它所指向的节点的authority值之和,节点authority值为指向它的节点的hub值之和。
  4. 代码
    import numpy as np
    import pandas as pd
    import networkx as nx
    
    edges = pd.DataFrame()
    edges['sources'] = [0,1,2,3,4,4,6,7,7,9,1,4,4,4,6,7,5,8,9,8]
    edges['targets'] = [1,4,4,4,6,7,5,8,9,8,0,1,2,3,4,4,6,7,7,9]
    #edges['weights'] = [1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
    
    G = nx.from_pandas_edgelist(edges, source='sources',target='targets')
    # degree
    print(nx.degree(G))
    # 连通分量
    print(list(nx.connected_components(G)))
    # 图直径
    print(nx.diameter(G))
    # 度中心性
    print('度中心性',nx.degree_centrality(G))
    # 特征向量中心性
    print('特征向量中心性',nx.eigenvector_centrality(G))
    # betweenness
    print('betweenness',nx.betweenness_centrality((G)))
    # closeness
    print('closeness',nx.closeness_centrality(G))
    # pagerank
    print('pagerank',nx.pagerank(G))
    # HITS
    print('HITS',nx.hits(G,tol=0.00001))

     

 

上一篇:LCP 4. 覆盖


下一篇:F - LJJ王国的数学家(dfs简单递归入门)