jaccard_coefficient#
- jaccard_coefficient(G, ebunch=None)[source]#
Compute the Jaccard coefficient of all node pairs in ebunch.
Jaccard coefficient of nodes u and v is defined as
\[\frac{|\Gamma(u) \cap \Gamma(v)|}{|\Gamma(u) \cup \Gamma(v)|}\]where \(\Gamma(u)\) denotes the set of neighbors of \(u\).
- Parameters:
- Ggraph
A NetworkX undirected graph.
- ebunchiterable of node pairs, optional (default = None)
Jaccard coefficient 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 nonexistent edges in the graph will be used. Default value: None.
- Returns:
- piteriterator
An iterator of 3-tuples in the form (u, v, p) where (u, v) is a pair of nodes and p is their Jaccard coefficient.
- Raises:
- NetworkXNotImplemented
If G is a DiGraph, a Multigraph or a MultiDiGraph.
- NodeNotFound
If ebunch has a node that is not in G.
References
[1]D. Liben-Nowell, J. Kleinberg. The Link Prediction Problem for Social Networks (2004). http://www.cs.cornell.edu/home/kleinber/link-pred.pdf
Examples
>>> G = nx.complete_graph(5) >>> preds = nx.jaccard_coefficient(G, [(0, 1), (2, 3)]) >>> for u, v, p in preds: ... print(f"({u}, {v}) -> {p:.8f}") (0, 1) -> 0.60000000 (2, 3) -> 0.60000000
Additional backends implement this function
cugraph : GPU-accelerated backend.
- neptuneNeptune computation backend for NetworkX.
The ebunch parameter must be provided as an iterable of node pairs (u, v).
When ebunch=None, non-edges are computed locally from the NetworkX graph before being sent to Neptune. For large graphs, prefer passing an explicit ebunch.
Neptune Analytics does not support a mutate variant for Jaccard similarity.
For additional parameters, see awslabs/nx-neptune
- parallelA networkx backend that uses joblib to run graph algorithms in parallel. Find the nx-parallel’s configuration guide here
The edge pairs are chunked into pairs_chunks and then the jaccard coefficient for all pairs_chunks is computed in parallel over n_jobs number of CPU cores.
- Additional parameters:
- get_chunksstr, function (default = “chunks”)
A function that takes in a list of all the edges (or ebunch) as input and returns an iterable pairs_chunks. The default chunking is done by slicing ebunch into n_jobs number of chunks.
[Source]