Skip to main content

label_propagate_predict

Function label_propagate_predict 

Source
pub fn label_propagate_predict(
    graph: &Graph,
    labels: &[Option<u32>],
) -> IgraphResult<Vec<u32>>
Expand description

Predict labels using simple majority voting from labeled neighbors.

A non-iterative baseline: each unlabeled vertex adopts the most common label among its labeled neighbors. If no labeled neighbor exists, assigns label 0 (or keeps the existing label if provided).

§Examples

use rust_igraph::{Graph, label_propagate_predict};

let g = Graph::from_edges(&[(0,1),(1,2),(0,2),(2,3)], false, Some(4)).unwrap();
let labels = vec![Some(0), Some(0), None, Some(1)];
let predicted = label_propagate_predict(&g, &labels).unwrap();
// Vertex 2 has neighbors: 0(class 0), 1(class 0), 3(class 1) → majority = 0
assert_eq!(predicted[2], 0);