sklears-compose

Crates.iosklears-compose
lib.rssklears-compose
version0.1.0-beta.1
created_at2025-10-13 16:43:02.668657+00
updated_at2026-01-01 21:41:41.780928+00
descriptionComposite estimators and transformers
homepagehttps://github.com/cool-japan/sklears
repositoryhttps://github.com/cool-japan/sklears
max_upload_size
id1880768
size17,699,019
KitaSan (cool-japan)

documentation

README

sklears-compose

Crates.io Documentation License Minimum Rust Version

Latest release: 0.1.0-beta.1 (January 1, 2026). See the workspace release notes for highlights and upgrade guidance.

Overview

sklears-compose implements pipelines, column transformers, target transformers, and composite estimator utilities matching scikit-learn’s compose module.

Key Features

  • Pipelines: Type-safe, state-aware Pipeline and FeatureUnion implementations with parallel execution support.
  • Column Transforms: ColumnTransformer, make_column_transformer, and feature selection by dtype or name.
  • Target Transformations: TransformedTargetRegressor, inverse-transform aware scorers, and custom adapters.
  • Serialization: Friendly with serde-powered persistence and Python interoperability via sklears-python.

Quick Start

use sklears_compose::{Pipeline, make_column_transformer};
use sklears_preprocessing::{StandardScaler, OneHotEncoder};
use sklears_linear::LinearRegression;

let preprocessor = make_column_transformer()
    .with_transformer("numeric", StandardScaler::default(), vec![0, 1, 2])
    .with_transformer("categorical", OneHotEncoder::default(), vec![3])
    .build();

let pipeline = Pipeline::builder()
    .add_step("preprocess", preprocessor)
    .add_step("model", LinearRegression::default())
    .build();

let fitted = pipeline.fit(&x_train, &y_train)?;
let predictions = fitted.predict(&x_test)?;

Status

  • Verified through workspace integration tests; 0.1.0-beta.1 recorded 10,013 passes with zero failures.
  • Supports all major scikit-learn compose APIs plus Rust-centric ergonomic improvements.
  • Future enhancements (async pipelines, streaming feature unions) tracked in TODO.md.
Commit count: 0

cargo fmt