# sklears-multioutput
[](https://crates.io/crates/sklears-multioutput)
[](https://docs.rs/sklears-multioutput)
[](../../LICENSE)
[](https://www.rust-lang.org)
> **Latest release:** `0.1.0-beta.1` (January 1, 2026). See the [workspace release notes](../../docs/releases/0.1.0-beta.1.md) for highlights and upgrade guidance.
## Overview
`sklears-multioutput` implements multi-output regression and classification wrappers that allow any estimator to generalize to multi-label and multi-output settings, mirroring scikit-learn’s multioutput module.
## Key Features
- **Wrappers**: MultiOutputRegressor, MultiOutputClassifier, ClassifierChain, RegressorChain.
- **Parallelism**: Multi-threaded fitting of per-target estimators with shared caching.
- **Integration**: Works with pipelines, model selection, and calibration components out of the box.
- **Advanced Modes**: Supports probabilistic chaining, custom meta-estimators, and GPU-enabled base learners.
## Quick Start
```rust
use sklears_multioutput::MultiOutputRegressor;
use sklears_linear::Ridge;
let base_estimator = Ridge::builder()
.alpha(1.0)
.fit_intercept(true)
.build();
let wrapper = MultiOutputRegressor::new(base_estimator);
let fitted = wrapper.fit(&x_train, &y_train)?;
let predictions = fitted.predict(&x_test)?;
```
## Status
- Validated by the overall 11,292 passing workspace tests for `0.1.0-beta.1`.
- Ensures full parity with scikit-learn’s multi-output utilities while leveraging Rust’s performance.
- Future enhancements (asynchronous chaining, probabilistic calibration) tracked in `TODO.md`.