Skip to main content

Rectified L1 logistic regression with CUTLASS critical range encoding.

Project description

CUTLASS

CUTLASS (Critical-range rectified LASSO) packages the workflow developed in the project scripts into a reusable, publishable Python library. It exposes a scikit-learn inspired estimator that rectifies the input space into {-1, +1} indicators, trains an L1-penalised logistic model with an efficient coordinate-descent solver, and optionally compresses the model into a logical rule without any dependence on scikit-learn itself.

Features

  • Rectifier transformer that infers critical ranges from the positive class and binarises features into {-1, +1}.
  • Cross-validated L1 logistic model with warm-started coordinate descent and optional FISTA solver.
  • Logical compression step mirroring the research code (top-k votes with fixed magnitude K and several intercept policies).
  • Serialization helpers to persist rectifier limits and fitted models.
  • Lightweight implementation that depends only on NumPy and pandas (matplotlib is optional for plotting diagnostics).

Installation

pip install cutlass

The plotting utilities used by the logical compression step are optional. To enable them, install the plots extra:

pip install cutlass[plots]

Quick start

import pandas as pd
from cutlass import CutlassClassifier

# toy binary dataset
df = pd.DataFrame(
    {
        "feat_a": [0.1, 0.3, 0.7, 0.9],
        "feat_b": [10, 13, 8, 5],
        "INDC": [0, 0, 1, 1],
    }
)

X = df.drop(columns=["INDC"])
y = df["INDC"]

clf = CutlassClassifier(
    rectify=True,
    Cs=15,
    solver="cd",
    cv=3,
    logic_polish=True,
    logic_scale=10.0,
)
clf.fit(X, y)
print(clf.predict_proba(X))
print("limits:", clf.limits_)

Vignettes

Additional step-by-step guides live under docs/vignettes/:

  • 01_basic_rectified_workflow.md – reproduce the baseline rectified L1 fit.
  • 02_logical_polish.md – enable logic polishing and interpret diagnostics.
  • 03_batch_experiments.md – run batched experiments and export artifacts.

API highlights

  • cutlass.Rectifier: transformer implementing the critical-range binarisation.
  • cutlass.CutlassLogisticCV: lower-level L1 logistic with cross-validation.
  • cutlass.CutlassClassifier: full workflow composed of the rectifier, optional scaling, and the logistic path solver.
  • cutlass.serialization: helpers for saving rectifier limits and fitted weights.

Refer to the docstrings for detailed parameter descriptions; they mirror the research scripts so existing experiment drivers can be migrated with minimal changes.

Development

To build the package locally:

python -m build

Run the unit tests (if any) with:

python -m pytest

License

MIT 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

cutlass-0.3.0.tar.gz (27.7 kB view details)

Uploaded Source

Built Distribution

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

cutlass-0.3.0-py3-none-any.whl (28.3 kB view details)

Uploaded Python 3

File details

Details for the file cutlass-0.3.0.tar.gz.

File metadata

  • Download URL: cutlass-0.3.0.tar.gz
  • Upload date:
  • Size: 27.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for cutlass-0.3.0.tar.gz
Algorithm Hash digest
SHA256 55051874e0f5c494f7ec6793bf875c94f8676f18f9b6f57cdf3ac01a98630e65
MD5 c7c13096e78ba7408831cdee8d0daa20
BLAKE2b-256 eba510ba37b7ba15da66db7c197542e27be0f1bce1a6b2219de4953d5963a40f

See more details on using hashes here.

File details

Details for the file cutlass-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: cutlass-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 28.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.13

File hashes

Hashes for cutlass-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1286e85943a8c48bba9c341813fc0941482a3ab25acfc915092e81a4e0fc7cd3
MD5 b70fe8dac56d06ea7ce83333e0073016
BLAKE2b-256 1cc23f8e5ea9635b75822eadbcbfbd25a89499d937caff7ff603b0e5958334b5

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