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.2.0.tar.gz (25.2 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.2.0-py3-none-any.whl (26.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for cutlass-0.2.0.tar.gz
Algorithm Hash digest
SHA256 f61d71c2affac2b7cb0d88a173fcc6ac0584dabc05b8fb24006f62da7a039040
MD5 f28fccac115531bf24048bdb9f0069e2
BLAKE2b-256 6ec2301e9162e28968c0806ed7c67c479e615f3134e5503dcbff416a2ea1f1d1

See more details on using hashes here.

File details

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

File metadata

  • Download URL: cutlass-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 26.4 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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6381a06ba420ce0699452cb20ed7162af3e36503105c568cb2ddd0c721af2d26
MD5 6f6fd70cc2c7f48e157ee9715d44d242
BLAKE2b-256 d00ae63a0421216be507cd3706b2286eb2a9d7458864b96fd2c484ef19c001d2

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