| Crates.io | label-propagation |
| lib.rs | label-propagation |
| version | 0.1.1 |
| created_at | 2021-08-24 15:09:43.434248+00 |
| updated_at | 2021-08-26 20:15:31.839639+00 |
| description | Label Propagation Algorithm by Rust |
| homepage | |
| repository | https://github.com/vaaaaanquish/label-propagation-rs |
| max_upload_size | |
| id | 441729 |
| size | 9,465 |
Label Propagation Algorithm by Rust.
Label propagation (LP) is graph-based semi-supervised learning (SSL).
A simple LGC and a more advanced CAMLP have been implemented.
You can find the examples in the examples directory.
The label is a continuous value of [0, class_n], and the result of predict_proba is the value of the label.
use std::result::Result;
use std::error::Error;
extern crate label_propagation;
extern crate ndarray;
extern crate ndarray_stats;
use ndarray::prelude::*;
use label_propagation::{CAMLP, LGC};
use ndarray::Array;
pub fn main() -> Result<(), Box<dyn Error>> {
// make graph matrix ndarray
let graph = Array::from_shape_vec(
(3, 3),
vec![0.0, 0.3, 0.0, 0.3, 0.0, 0.0, 0.0, 0.0, 0.0]).unwrap();
// node index for label
let x = array![0, 1];
// label
let y = array![0, 1];
// make model
let mut model = CAMLP::new(graph).iter(30).beta(0.1);
// let mut model = LGC::new(graph).iter(30).alpha(0.99);
model.fit(&x, &y)?;
let target = array![0, 1];
let result = model.predict_proba(&target);
println!("{:?}", result);
Ok(())
}
docker build -t graph .
docker run -it -v $PWD:/app graph bash