| Crates.io | sklears-multiclass |
| lib.rs | sklears-multiclass |
| version | 0.1.0-beta.1 |
| created_at | 2025-10-13 16:22:55.987777+00 |
| updated_at | 2026-01-01 21:40:22.681952+00 |
| description | Multiclass classification strategies |
| homepage | https://github.com/cool-japan/sklears |
| repository | https://github.com/cool-japan/sklears |
| max_upload_size | |
| id | 1880749 |
| size | 1,004,506 |
State-of-the-art multiclass classification strategies for Rust, providing 5-15x performance improvements over scikit-learn while maintaining API familiarity.
Latest release:
0.1.0-beta.1(January 1, 2026). See the workspace release notes for highlights and upgrade guidance.
sklears-multiclass implements comprehensive multiclass classification strategies including:
use sklears_multiclass::{OneVsRestClassifier, OneVsOneClassifier};
use sklears_linear::LogisticRegression;
use ndarray::array;
// Create base binary classifier
let base_classifier = LogisticRegression::default();
// One-vs-Rest strategy
let ovr = OneVsRestClassifier::builder()
.base_classifier(base_classifier.clone())
.parallel(true)
.build();
// One-vs-One strategy
let ovo = OneVsOneClassifier::builder()
.base_classifier(base_classifier)
.build();
// Train and predict
let X = array![[1.0, 2.0], [2.0, 3.0], [3.0, 4.0]];
let y = array![0, 1, 2];
let trained_ovr = ovr.fit(&X, &y)?;
let predictions = trained_ovr.predict(&X)?;
Benchmarks on standard datasets show:
use sklears_multiclass::{MulticlassSMOTE, SMOTEVariant, SamplingStrategy};
let smote = MulticlassSMOTE::builder()
.variant(SMOTEVariant::BorderlineSMOTE)
.sampling_strategy(SamplingStrategy::Auto)
.k_neighbors(5)
.build();
let (X_resampled, y_resampled) = smote.fit_resample(&X, &y)?;
use sklears_multiclass::{CalibratedClassifier, CalibrationMethod};
let calibrated = CalibratedClassifier::builder()
.base_classifier(classifier)
.method(CalibrationMethod::TemperatureScaling)
.cv_folds(5)
.build();
use sklears_multiclass::{HierarchicalClassifier, HierarchicalStrategy};
let hierarchical = HierarchicalClassifier::builder()
.base_classifier(classifier)
.strategy(HierarchicalStrategy::TopDown)
.build();
The crate follows a modular design:
sklears-multiclass/
├── src/
│ ├── core/ # Core traits and types
│ ├── decomposition/ # Binary decomposition methods
│ ├── ensemble/ # Ensemble methods
│ ├── calibration/ # Probability calibration
│ ├── imbalance/ # Class imbalance handling
│ ├── hierarchical/ # Hierarchical classification
│ └── incremental/ # Online learning (in progress)
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Licensed under either of:
at your option.
If you use this crate in your research, please cite:
@software{sklears_multiclass,
title = {sklears-multiclass: High-Performance Multiclass Classification for Rust},
author = {COOLJAPAN OU (Team KitaSan)},
year = {2026},
url = {https://github.com/cool-japan/sklears}
}