Skip to main content

A library for Augmented Model Stacking and ensemble with a focus on flexibility and performance.

Project description

LayerLearn — Flexible Model Library

layerlearn is a small Python package that makes it easy to build stacked estimators (regressors and classifiers) around scikit-learn models. this library is designed to provide a flexible and easy-to-use interface for building stacked models, allowing users to combine multiple models to improve performance. with this library you can stack any scikit-learn compatible models and also you can use the default models provided by the library.

Features

  • Flexible Stacking: Easily stack any scikit-learn compatible models.
  • Regression and Classification: Supports both regression and classification tasks.
  • Customizable: Allows customization of the base and meta models.
  • Easy to Use: Simple API for building and training stacked models.

Requirements

  • Python 3.8+
  • scikit-learn
  • numpy
  • xgboost
  • catboost
  • lightgbm

Installation

From PyPI:

pip install layeredlearning

From source (recommended for development):

git clone https://github.com/Mr-J12/newalgo.git
cd newalgo
pip install -e .

Examples & tests

See example scripts in the repository:

  • testing/regression_default_dataset.py
  • testing/classification_default_dataset.py
  • testing/instantiation_checking.py

Quick examples

Regression:

from layerlearn.flexiblestacked import FlexibleStackedRegressor
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split

X, y = make_regression(n_samples=200, n_features=10, noise=10)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

base = LinearRegression()
meta = RandomForestRegressor(random_state=0)
stack = FlexibleStackedRegressor(base, meta)
stack.fit(X_train, y_train)
preds = stack.predict(X_test)
print(preds[:5])

Classification:

from layerlearn.flexiblestacked import FlexibleStackedClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split

X, y = make_classification(n_samples=200, n_features=10, n_classes=2, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)

base = LogisticRegression(max_iter=1000)
meta = RandomForestClassifier(random_state=0)
stack = FlexibleStackedClassifier(base, meta)
stack.fit(X_train, y_train)
preds = stack.predict(X_test)
print(preds[:5])

Visualization

Regression Default Dataset Report

Classification Default Dataset Report

Model-wise Testing Results

Regression Model Performance

The regression testing uses a synthetic dataset with 200 samples and 10 features. The following models are evaluated:

  • baseLinear Regressor: Baseline linear model providing initial predictions
  • baseForest Regressor: Ensemble of trees capturing non-linear patterns and reducing variance
  • baseXGBR Regressor: Regularized gradient boosting with strong performance on tabular data
  • baseLight Regressor: Fast, memory-efficient gradient boosting suited for large datasets
  • baseCat Regressor: Ordered boosting with robust handling of categorical features

Results and performance metrics are visualized in the regression default dataset report above, showing R² Score across all base models.

Regression Model Visualizations

Linear Regression Results

Random Forest Regressor Results

XGBoost Regressor Results

LightGBM Regressor Results

CatBoost Regressor Results

Classification Model Performance

The classification testing uses a synthetic binary classification dataset with 200 samples and 10 features. The following models are evaluated:

  • Logistic Regression : Standard logistic classification baseline
  • Random Forest Classifier : Ensemble method for combining predictions
  • XGBoost Classifier: Gradient boosting for improved classification accuracy
  • LightGBM Classifier: Fast classification with categorical feature support
  • CatBoost Classifier: Optimized for categorical data with robust performance

Results and performance metrics are displayed in the classification default dataset report above, showing Accuracy, Precision, Recall, and F1-Score across all base models.

Classification Model Visualizations

Logistic Regression Results

Random Forest Classifier Results

XGBoost Classifier Results

LightGBM Classifier Results

CatBoost Classifier Results

Development

  • Install development requirements (scikit-learn, numpy).
  • Run example scripts to verify behavior: python testing/regression_default_dataset.py

License

See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

layeredlearning-1.6.1.tar.gz (2.5 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

layeredlearning-1.6.1-py3-none-any.whl (42.0 kB view details)

Uploaded Python 3

File details

Details for the file layeredlearning-1.6.1.tar.gz.

File metadata

  • Download URL: layeredlearning-1.6.1.tar.gz
  • Upload date:
  • Size: 2.5 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for layeredlearning-1.6.1.tar.gz
Algorithm Hash digest
SHA256 dc15ae97fdd3c460dcfb90074925c253805e6f8ec3abd0da318ad7eafdce1ba4
MD5 d6f6de68e68bb338894aad3d802c2da6
BLAKE2b-256 b7f04c5a3ccf5e17b0a958f2718baed161b0b7cb6472f0abd1dc3a050a61c8a0

See more details on using hashes here.

File details

Details for the file layeredlearning-1.6.1-py3-none-any.whl.

File metadata

File hashes

Hashes for layeredlearning-1.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5b55d9412067b4669f264aff33f4fdc7fed6d702449b4dd34d74398017325ebd
MD5 36877e6157508cf02ce9afa8474f45fe
BLAKE2b-256 0ae4f6c84711459a2316c0a21daa0a99ae14520ce406b4bdd162b9a7959c1b75

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page