Project Homepage | Source Code Logo
2.5
  • Install
  • Tutorial
  • Gallery
  • Reference
    • Introduction
    • Graph types
    • Algorithms
      • Approximations and Heuristics
      • Assortativity
      • Asteroidal
      • Bipartite
      • Boundary
      • Bridges
      • Centrality
      • Chains
      • Chordal
      • Clique
      • Clustering
      • Coloring
      • Communicability
      • Communities
      • Components
      • Connectivity
      • Cores
      • Covering
      • Cycles
      • Cuts
      • D-Separation
      • Directed Acyclic Graphs
      • Distance Measures
      • Distance-Regular Graphs
      • Dominance
      • Dominating Sets
      • Efficiency
      • Eulerian
      • Flows
      • Graph Hashing
      • Graphical degree sequence
      • Hierarchy
      • Hybrid
      • Isolates
      • Isomorphism
      • Link Analysis
      • Link Prediction
      • Lowest Common Ancestor
      • Matching
      • Minors
      • Maximal independent set
      • non-randomness
      • Moral
      • Node Classification
      • Operators
      • Planarity
      • Planar Drawing
      • Reciprocity
      • Regular
      • Rich Club
      • Shortest Paths
      • Similarity Measures
      • Simple Paths
      • Small-world
      • s metric
      • Sparsifiers
      • Structural holes
      • Swap
      • Threshold Graphs
      • Tournament
      • Traversal
      • Tree
      • Triads
      • Vitality
      • Voronoi cells
      • Wiener index
    • Functions
    • Graph generators
    • Linear algebra
    • Converting to and from other data formats
    • Relabeling nodes
    • Reading and writing graphs
    • Drawing
    • Randomness
    • Exceptions
    • Utilities
    • Glossary
  • Developer Guide
  • Release Log
  • License
  • About Us
  • Citing
  • Bibliography
NetworkX
  • »
  • Reference »
  • Algorithms »
  • Link Prediction »
  • networkx.algorithms.link_prediction.cn_soundarajan_hopcroft

networkx.algorithms.link_prediction.cn_soundarajan_hopcroft¶

cn_soundarajan_hopcroft(G, ebunch=None, community='community')[source]¶
Count the number of common neighbors of all node pairs in ebunch

using community information.

For two nodes \(u\) and \(v\), this function computes the number of common neighbors and bonus one for each common neighbor belonging to the same community as \(u\) and \(v\). Mathematically,

\[|\Gamma(u) \cap \Gamma(v)| + \sum_{w \in \Gamma(u) \cap \Gamma(v)} f(w)\]

where \(f(w)\) equals 1 if \(w\) belongs to the same community as \(u\) and \(v\) or 0 otherwise and \(\Gamma(u)\) denotes the set of neighbors of \(u\).

Parameters
  • G (graph) – A NetworkX undirected graph.

  • ebunch (iterable of node pairs, optional (default = None)) – The score will be computed for each pair of nodes given in the iterable. The pairs must be given as 2-tuples (u, v) where u and v are nodes in the graph. If ebunch is None then all non-existent edges in the graph will be used. Default value: None.

  • community (string, optional (default = ‘community’)) – Nodes attribute name containing the community information. G[u][community] identifies which community u belongs to. Each node belongs to at most one community. Default value: ‘community’.

Returns

piter – An iterator of 3-tuples in the form (u, v, p) where (u, v) is a pair of nodes and p is their score.

Return type

iterator

Examples

>>> G = nx.path_graph(3)
>>> G.nodes[0]["community"] = 0
>>> G.nodes[1]["community"] = 0
>>> G.nodes[2]["community"] = 0
>>> preds = nx.cn_soundarajan_hopcroft(G, [(0, 2)])
>>> for u, v, p in preds:
...     print(f"({u}, {v}) -> {p}")
(0, 2) -> 2

References

1

Sucheta Soundarajan and John Hopcroft. Using community information to improve the precision of link prediction methods. In Proceedings of the 21st international conference companion on World Wide Web (WWW ‘12 Companion). ACM, New York, NY, USA, 607-608. http://doi.acm.org/10.1145/2187980.2188150

Next Previous

© Copyright 2004-2020, NetworkX Developers Last updated on Aug 22, 2020.

Built with Sphinx using a theme provided by Read the Docs.