No project description provided
Project description
ml-labs
A structured machine learning experimentation framework for building, managing, and evaluating ML pipelines with cross-validation, caching, and multi-framework support.
Installation
pip install ml-labs
With optional dependencies:
pip install ml-labs[xgboost] # XGBoost support
pip install ml-labs[lightgbm] # LightGBM support
pip install ml-labs[catboost] # CatBoost support
pip install ml-labs[shap] # SHAP value analysis
pip install ml-labs[polars] # Polars DataFrame support
pip install ml-labs[tensorflow] # Neural network estimators (NNClassifier, NNRegressor)
pip install ml-labs[all] # All optional dependencies
Key Features
- Pipeline: DAG-based node graph for defining ML workflows with stages (data transformation) and heads (model prediction)
- Experimenter: Experiment execution engine with LRU caching, state management, and error resilience
- Trainer: Cross-validation training pipeline with split management
- Collectors: Extensible data collection — metrics, stacking outputs, model attributes, SHAP values, raw outputs
- Adapters: Unified interface for scikit-learn, XGBoost, LightGBM, CatBoost, and Keras
- Data Flexibility: Support for pandas, polars, cuDF, and NumPy arrays
Architecture Overview
Pipeline Define node graphs (stages + heads) with groups and edges
│
Experimenter Execute pipelines, manage cache and state
│
├── ExpObj Per-node build/experiment objects (StageObj, HeadObj)
├── Trainer Cross-validation training with split management
└── Collector Collect metrics, predictions, model attributes, SHAP values
Node State Model:
init ──→ built ──→ finalized
│
└──→ error ──→ (reset) ──→ init
Quick Start
from mllabs import Experimenter, Connector, MetricCollector
exp = Experimenter(data=df, path="exp/my_experiment")
p = exp.pipeline
p.set_grp("scale", role="stage", processor="StandardScaler")
p.set_grp("model", role="head", processor="LogisticRegression",
parent="scale", edges={"X": [(None, None)], "y": [(None, "target")]})
p.set_node("lr_default", grp="model")
p.set_node("lr_c01", grp="model", params={"C": 0.1})
mc = MetricCollector("accuracy", Connector(), output_var="prediction",
metric_func=lambda y, pred: (y == pred).mean())
exp.add_collector(mc)
exp.build(["lr_default", "lr_c01"])
exp.exp(["lr_default", "lr_c01"])
print(mc.get_metrics(["lr_default", "lr_c01"]))
Documentation
Full documentation is available at https://sunkusun9.github.io/ml-labs/
- Concepts — Architecture, Pipeline, State model, Data flow
- User Guide — Pipeline & Experimenter, Trainer & Collectors, Adapters, Processors, Neural Networks
- Serving Guide — Inferencer export and inference
- API Reference — Full API reference
Requirements
- Python >= 3.10
- pandas >= 1.5
- numpy >= 1.23
- scikit-learn >= 1.2
- cachetools >= 5.0
License
PolyForm Noncommercial 1.0.0 — free for non-commercial use.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ml_labs-0.6.1.tar.gz.
File metadata
- Download URL: ml_labs-0.6.1.tar.gz
- Upload date:
- Size: 100.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45983193026529d89597c1188913664a81d58d5e4d9be72d05eb5c6e06fe7e4f
|
|
| MD5 |
dc4b24d990d85e9bb0ad802f25aa938e
|
|
| BLAKE2b-256 |
e510b4923e230990c2bed4bdf76a390e8cbfe45623b6c8756d7e41437209e492
|
Provenance
The following attestation bundles were made for ml_labs-0.6.1.tar.gz:
Publisher:
publish.yml on sunkusun9/ml-labs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ml_labs-0.6.1.tar.gz -
Subject digest:
45983193026529d89597c1188913664a81d58d5e4d9be72d05eb5c6e06fe7e4f - Sigstore transparency entry: 1055620205
- Sigstore integration time:
-
Permalink:
sunkusun9/ml-labs@a9713d13b341525ac15730d0f311c26302d37358 -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/sunkusun9
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a9713d13b341525ac15730d0f311c26302d37358 -
Trigger Event:
push
-
Statement type:
File details
Details for the file ml_labs-0.6.1-py3-none-any.whl.
File metadata
- Download URL: ml_labs-0.6.1-py3-none-any.whl
- Upload date:
- Size: 94.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c0ace3f44f267a61c9738ef4d987baf436e1748b9864dbc2c08197feff40bddc
|
|
| MD5 |
4f0c02feaff8b7e078253aad89b76dc2
|
|
| BLAKE2b-256 |
659e64dd0755c32cac9e74f6e27b839d154107094b83f65c394cd16fa274ff42
|
Provenance
The following attestation bundles were made for ml_labs-0.6.1-py3-none-any.whl:
Publisher:
publish.yml on sunkusun9/ml-labs
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
ml_labs-0.6.1-py3-none-any.whl -
Subject digest:
c0ace3f44f267a61c9738ef4d987baf436e1748b9864dbc2c08197feff40bddc - Sigstore transparency entry: 1055620247
- Sigstore integration time:
-
Permalink:
sunkusun9/ml-labs@a9713d13b341525ac15730d0f311c26302d37358 -
Branch / Tag:
refs/tags/v0.6.1 - Owner: https://github.com/sunkusun9
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@a9713d13b341525ac15730d0f311c26302d37358 -
Trigger Event:
push
-
Statement type: