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
Built Distribution
Hashes for generalized-elastic-net-1.0.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | fea9771c5ffcc0ca3527644670e93d7a64bff9c4e2b8113dc0894ac318240009 |
|
MD5 | 4a9cd44127ae03781c33519a0c39e45f |
|
BLAKE2b-256 | c07a2bf6576b54d0ba552b2e607e7df009defc4b0795f52d5a725c3aa04d2cdc |
Hashes for generalized_elastic_net-1.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d3b10dd6b33ddc504bb557b9e00acd63b023c6169b8ea13c7a2d770af962a963 |
|
MD5 | 68301ce3c07232ae58c278db5151a4b0 |
|
BLAKE2b-256 | 09303d58084f2b7e7c44377fbf4577d07b8bfe854d9e7b14b06ef0136b8026ce |