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.4.0.tar.gz (28.8 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.4.0-py3-none-any.whl (29.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for cutlass-0.4.0.tar.gz
Algorithm Hash digest
SHA256 fbd63bb7082ecdea8624ff7cd778404adce32d595378b0fe247ac79ddcc0f403
MD5 5fce6a933b09f976a897e8d473ba599e
BLAKE2b-256 8f5e7d4355b71ea2fc6a2a38799c0fd6cb0ba0d4e9f09ba92ba0c1c3ca703d6a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cutlass-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 29.1 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.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 9786f0ab88605b1e85c3c1039dfb0bf2932396552b762508b4c4d4aa78c3dd2a
MD5 4c27c2c1995049ed83c837a094d9a25b
BLAKE2b-256 ded7dd611b88d171d3f9ba71e32c6ed6fcc932733bf9d37f5bce2a7b6e4934dc

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