Skip to main content

Constrained Linear Regression with sklearn-compatible API

Project description

Constrained Linear Regression

Package version Supported Python versions

constrainedlr is a drop-in replacement for scikit-learn's linear_model.LinearRegression with the extended capability to apply constraints on the model's coefficients, such as signs and lower/upper bounds.

Installation

pip install constrainedlr

Example Usage

Coefficients sign constraints

from constrainedlr import ConstrainedLinearRegression

model = ConstrainedLinearRegression()

model.fit(
    X_train,
    y_train,
    coefficients_sign_constraints={0: "positive", 2: "negative"},
    intercept_sign_constraint="positive",
)

y_pred = model.predict(X_test)

print(model.coef_, model.intercept_)

Coefficients range constraints

from constrainedlr import ConstrainedLinearRegression

model = ConstrainedLinearRegression()

model.fit(
    X_train,
    y_train,
    coefficients_range_constraints={
        0: {"lower": 2},  # 1st coefficient must be 2 or higher
        2: {"upper": 10},  # 3rd coefficient must be smaller than 10
        3: {"lower": 0.1, "upper": 0.5},  # 4th coefficient must be between 0.1 and 0.5
    },
)

y_pred = model.predict(X_test)

print(model.coef_)

See more in the documentation

Licence

MIT

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

constrainedlr-0.2.0.tar.gz (11.1 kB view details)

Uploaded Source

Built Distribution

constrainedlr-0.2.0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: constrainedlr-0.2.0.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.11.4

File hashes

Hashes for constrainedlr-0.2.0.tar.gz
Algorithm Hash digest
SHA256 734810e9453bcb13cc7cb3c15b947a0cc9094e5fec8f164d1ddbbb1edae1c55c
MD5 c0eeb8ceef9dcc9651be47a49a92f6c2
BLAKE2b-256 6b9a997cd1da88cb8d2e7b194b46850cd89e035c559b3a3cfda11e155c3d46c7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for constrainedlr-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0c9f86aebd3db15e7859a9d97af69a5daf68fb8e622885010ed749eff17ff2cb
MD5 0fd95a22aef02fdde24a2d550f420519
BLAKE2b-256 e803d1afdadb451c3cb1106b2c2f3cff72017d95f29089be8d54e611b6d92a85

See more details on using hashes here.

Supported by

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