shap-rs 0.1.0

Native Rust implementations of model-agnostic, linear, and TreeSHAP explainers
Documentation
use ndarray::array;
use shap_rs::{
    explainers::TreeExplainer, Explainer, MissingBranch, Node, Result, Tree, TreeEnsemble,
};

fn main() -> Result<()> {
    let tree = Tree::new(
        vec![
            Node::Split {
                feature: 0,
                threshold: 0.0,
                left: 1,
                right: 2,
                missing: MissingBranch::Left,
                cover: 10.0,
            },
            Node::Leaf {
                values: vec![1.0],
                cover: 4.0,
            },
            Node::Leaf {
                values: vec![5.0],
                cover: 6.0,
            },
        ],
        0,
        1,
    )?;
    let model = TreeEnsemble::new(vec![(tree, 1.0)], vec![0.0])?;
    let explanation = TreeExplainer::new(&model).explain(array![[2.0]].view())?;
    println!("{:?}", explanation.values());
    Ok(())
}