Skip to main content

Generalized Elastic Net

Project description

Generalized Elastic Net Library

Generalized elastic net is a penalty method for variable selection and regularization in high-dimensional sparse linear models. It generalizes and outperforms the lasso, ridge, and nonnegative elastic net through (1) capturing the penalty weights for individual features or/and interactions between any two features; (2) controling the range of the coefficients.

The algorithm is available through this public Python library. It applys multiplicative updates on a quadratic programming problem but contains absolute values of variables and a rectangle-range constraint. The algorithm is shown to converge monotonically to the global in the publication.

To install

The generalized elastic net library requires Python 3 and is pip friendly. To get started, simply do:

pip install generalized-elastic-net

or check out the code from out GitHub repository. You can now use the package in Python with:

from generalized_elastic_net import GeneralizedElasticNet

Example

Input parameters:

>>> N = 3
>>> K = 4
>>> Xmat = np.random.randn(N, K)
>>> Yvec = np.random.randn(N)
>>> print(Yvec)
[-0.72166018 -0.18367545 -0.77768828]
>>> lam_1 = 0.0034
>>> lam_2 = 0
>>> sigma = np.diag([1] * K)
>>> wvec = np.ones(K)
>>> lowbo = -1e5 * np.ones(K)
>>> upbo = np.inf * np.ones(K)

Fit the model:

>>> s = GeneralizedElasticNet(lam_1=lam_1, lam_2=lam_2, lowbo=lowbo, upbo=upbo, wvec=wvec, sigma=sigma)
>>> s.fit(Xmat=Xmat, Yvec=Yvec)

Output prediction:

>>> print(s.predict(X=Xmat))
[-0.72167257 -0.18245943 -0.77582073]

Output coefficients:

>>> print(s.coef_)
[-21095.74451325 -94129.49591188  25282.3047479  -10810.57632817]

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

generalized-elastic-net-1.0.1.tar.gz (4.2 kB view details)

Uploaded Source

Built Distribution

generalized_elastic_net-1.0.1-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file generalized-elastic-net-1.0.1.tar.gz.

File metadata

  • Download URL: generalized-elastic-net-1.0.1.tar.gz
  • Upload date:
  • Size: 4.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for generalized-elastic-net-1.0.1.tar.gz
Algorithm Hash digest
SHA256 fea9771c5ffcc0ca3527644670e93d7a64bff9c4e2b8113dc0894ac318240009
MD5 4a9cd44127ae03781c33519a0c39e45f
BLAKE2b-256 c07a2bf6576b54d0ba552b2e607e7df009defc4b0795f52d5a725c3aa04d2cdc

See more details on using hashes here.

File details

Details for the file generalized_elastic_net-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: generalized_elastic_net-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/53.0.0 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for generalized_elastic_net-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d3b10dd6b33ddc504bb557b9e00acd63b023c6169b8ea13c7a2d770af962a963
MD5 68301ce3c07232ae58c278db5151a4b0
BLAKE2b-256 09303d58084f2b7e7c44377fbf4577d07b8bfe854d9e7b14b06ef0136b8026ce

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