Crate rust_imbalanced_learn

Source
Expand description

§rust-imbalanced-learn

High-performance resampling techniques for imbalanced datasets in Rust.

This crate provides a comprehensive suite of algorithms for handling imbalanced datasets in machine learning applications, with a focus on performance, safety, and ease of use.

§Features

  • SMOTE (Synthetic Minority Over-sampling Technique)
  • ADASYN (Adaptive Synthetic Sampling)
  • RandomUnderSampler for majority class reduction
  • Comprehensive metrics for model evaluation
  • Type-safe abstractions with compile-time guarantees
  • High performance with SIMD and parallel processing support

§Quick Start

use rust_imbalanced_learn::prelude::*;
use ndarray::{Array1, Array2};

// Create sample imbalanced dataset
let x = Array2::from_shape_vec((4, 2), vec![
    1.0, 2.0,
    2.0, 3.0,
    3.0, 4.0,
    10.0, 11.0,
]).unwrap();
let y = Array1::from_vec(vec![0, 0, 0, 1]);

// Apply SMOTE resampling
let smote = SmoteStrategy::new(2);
let config = SmoteConfig::default();
let (x_resampled, y_resampled) = smote.resample(x.view(), y.view(), &config).unwrap();

println!("Original samples: {}", y.len());
println!("Resampled samples: {}", y_resampled.len());

§Architecture

The library is organized into focused modules:

  • core - Core traits and abstractions
  • sampling - Resampling algorithms (SMOTE, ADASYN, etc.)
  • ensemble - Ensemble methods for imbalanced data
  • metrics - Evaluation metrics and reports

§Performance

Built with performance in mind:

  • Zero-cost abstractions
  • SIMD acceleration support
  • Parallel processing with Rayon
  • Memory-efficient algorithms
  • Type-safe compile-time optimizations

Re-exports§

pub use imbalanced_core as core;
pub use imbalanced_sampling as sampling;
pub use imbalanced_ensemble as ensemble;
pub use imbalanced_metrics as metrics;

Modules§

prelude
Convenient prelude that imports commonly used items