Skip to main content

RandomMachine

PyPI Version License DOI

Random ensemble learning library that extends gradient boosting by randomly sampling base learners from a pool of LightGBM, CatBoost, XGBoost, and arbitrary scikit-learn-compatible estimators for improved ensemble diversity.

Installation

pip install randommachine

Or install from source:

git clone https://github.com/ghiffaryr/randommachine.git
cd randommachine
pip install -e .

Quick Start

Regression

from randommachine import RandomLGBMRegressor
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split

X, y = make_regression(n_samples=1000, n_features=20, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

model = RandomLGBMRegressor(num_iterations=20, learning_rate=0.5, random_state=42)
model.fit(X_train, y_train, X_eval=X_test, y_eval=y_test)

predictions = model.predict(X_test)

Classification

from randommachine import RandomCatBoostClassifier
from sklearn.datasets import make_classification

X, y = make_classification(n_samples=1000, n_features=20, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

model = RandomCatBoostClassifier(num_iterations=20, learning_rate=0.5)
model.fit(X_train, y_train, X_eval=X_test, y_eval=y_test)

predictions = model.predict(X_test)
probabilities = model.predict_proba(X_test)

Available Models

LightGBM-based:

  • RandomLGBMRegressor - Regression with random LightGBM base learners
  • RandomLGBMClassifier - Classification with random LightGBM base learners

CatBoost-based:

  • RandomCatBoostRegressor - Regression with random CatBoost base learners
  • RandomCatBoostClassifier - Classification with random CatBoost base learners

XGBoost-based:

  • RandomXGBRegressor - Regression with random XGBoost base learners
  • RandomXGBClassifier - Classification with random XGBoost base learners

Generic (user-defined pool):

  • RandomRegressor - Mix any sklearn-compatible regressors with custom probabilities
  • RandomClassifier - Mix any sklearn-compatible classifiers with custom probabilities

Tutorial

An interactive Jupyter notebook is available in the /docs folder:

  • Tutorial - Getting started guide with performance comparison vs plain LightGBM, CatBoost, and XGBoost baselines
cd docs/
jupyter notebook tutorial.ipynb

The tutorial includes side-by-side comparisons showing RandomMachine's improvement over fixed-family baselines.

Development

Run tests:

make test          # Run all tests
make test-cov      # With coverage report

Format code:

make format        # Black formatting
make lint          # Flake8 linting

License

MIT License - see LICENSE

Metadata

Release files for randommachine 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for randommachine 0.1.2
File Size Uploaded
randommachine-0.1.2.tar.gz 306.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for randommachine 0.1.2
File Interpreter ABI Platform
randommachine-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 321.6 kB

Release files / randommachine-0.1.2.tar.gz

Download URL randommachine-0.1.2.tar.gz
Size 306.3 kB
Tags Source
SHA-256 checksum
How to use checksums
a8698e66750ddbde132900a4492bd89841b90734d0d375721e0521ff49b1412c
BLAKE2b-256 checksum
How to use checksums
dfb3ad9d44c9141f99d7c70d5d7c26abe6c1e2b1fec760ba7cf5423f281b8ce9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release files / randommachine-0.1.2-py3-none-any.whl

Download URL randommachine-0.1.2-py3-none-any.whl
Size 15.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c36525d86a8d802dec766e4f1c430ad2b447ed6c952b5f09f7fd61cf21c1f63b
BLAKE2b-256 checksum
How to use checksums
919ca16214b00f1649570e21a4f1f3306013ebb0612adced01f8c386d68ca40e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.11

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page