dgl.linkx_homophilyο
- dgl.linkx_homophily(graph, y)[source]ο
Homophily measure from Large Scale Learning on Non-Homophilous Graphs: New Benchmarks and Strong Simple Methods
Mathematically it is defined as follows:
\[\frac{1}{C-1} \sum_{k=1}^{C} \max \left(0, \frac{\sum_{v\in C_k}|\{u\in \mathcal{N}(v): y_v = y_u \}|}{\sum_{v\in C_k}|\mathcal{N}(v)|} - \frac{|\mathcal{C}_k|}{|\mathcal{V}|} \right),\]where \(C\) is the number of node classes, \(C_k\) is the set of nodes that belong to class k, \(\mathcal{N}(v)\) are the predecessors of node \(v\), \(y_v\) is the class of node \(v\), and \(\mathcal{V}\) is the set of nodes.
- Parameters:
- Returns:
The homophily value.
- Return type:
Examples
>>> import dgl >>> import torch
>>> graph = dgl.graph(([0, 1, 2, 3], [1, 2, 0, 4])) >>> y = torch.tensor([0, 0, 0, 0, 1]) >>> dgl.linkx_homophily(graph, y) 0.19999998807907104