sklears-model-selection 0.1.0-beta.1

Model selection utilities for sklears: cross-validation, grid search, train-test split
Documentation

sklears-model-selection

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-model-selection implements the full suite of scikit-learn model selection utilities—grid search, random search, halving strategies, cross-validation splits, and scoring helpers—optimized for Rust performance and concurrency.

Key Features

  • Search Strategies: GridSearchCV, RandomizedSearchCV, HalvingGridSearch, HalvingRandomSearch, Bayesian/Adaptive search prototypes.
  • Cross-Validation: K-fold, stratified, grouped, time-series splits, repeated strategies, and custom splitter APIs.
  • Scoring & Metrics: make_scorer, scorer registry, multi-metric evaluation, and custom scorer plugins.
  • Parallel Execution: Rayon-powered evaluators with cancellation hooks and result caching.

Quick Start

use sklears_model_selection::{GridSearchCV, ParamGrid};
use sklears_linear::LogisticRegression;

let estimator = LogisticRegression::builder()
    .max_iter(200)
    .multi_class("auto")
    .build();

let param_grid = ParamGrid::builder()
    .add("C", vec![0.1, 1.0, 10.0])
    .add("penalty", vec!["l2".into()])
    .build();

let grid_search = GridSearchCV::builder()
    .estimator(estimator)
    .param_grid(param_grid)
    .cv(5)
    .n_jobs(8)
    .scoring("f1_macro")
    .build();

let fitted = grid_search.fit(&x_train, &y_train)?;
let best_params = fitted.best_params();

Status

  • Validated by the 11,292 passing workspace tests bundled with 0.1.0-beta.1.
  • Supports >99% of scikit-learn’s model selection API (including paired scoring functions and CV splitters).
  • Upcoming improvements (asynchronous evaluators, distributed tuning) documented in TODO.md.