concision

Crates.ioconcision
lib.rsconcision
version0.1.14
sourcesrc
created_at2022-07-03 21:46:53.369321
updated_at2024-05-25 07:10:21.17726
descriptionConcision is a complete data-science toolkit written in Rust
homepagehttps://github.com/FL03/concision/wiki
repositoryhttps://github.com/FL03/concision
max_upload_size
id618567
size41,719
Joe McCain III (FL03)

documentation

README

Concision

crates.io docs.rs

clippy rust


The library is currently in the early stages of development and is not yet ready for production use.

Concision is designed to be a complete toolkit for building machine learning models in Rust.

Concision is a machine learning library for building powerful models in Rust prioritizing ease-of-use, efficiency, and flexability. The library is built to make use of the both the upcoming autodiff experimental feature and increased support for generics in the 2024 edition of Rust.

Getting Started

Building from the source

Start by cloning the repository

git clone https://github.com/FL03/concision.git
cd concision
cargo build --features full -r --workspace

Usage

Example: Linear Model (biased)

    extern crate concision as cnc;

    use cnc::prelude::{linarr, Linear, Result, Sigmoid};
    use ndarray::Ix2;

    fn main() -> Result<()> {
        tracing_subscriber::fmt::init();
        tracing::info!("Starting linear model example");

        let (samples, d_in, d_out) = (20, 5, 3);
        let data = linarr::<f64, Ix2>((samples, d_in)).unwrap();

        let model = Linear::<f64>::from_features(d_in, d_out).uniform();
        // let model = Linear::<f64, cnc::linear::Unbiased>::from_features(d_in, d_out).uniform();

        assert!(model.is_biased());

        let y = model.activate(&data, Sigmoid::sigmoid).unwrap();
        assert_eq!(y.dim(), (samples, d_out));
        println!("Predictions:\n{:?}", &y);

        Ok(())
    }

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

Commit count: 320

cargo fmt