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 abstractionssampling
- Resampling algorithms (SMOTE, ADASYN, etc.)ensemble
- Ensemble methods for imbalanced datametrics
- 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