Skip to main content

Adaptive Lasso implementation following scikit-learn API

Project description

Adaptive Lasso

PyPI version Tests

A scikit-learn compatible implementation of the Adaptive Lasso algorithm for feature selection and regression.

Overview

Adaptive Lasso is an extension of the standard Lasso method that provides improved feature selection properties through weighted L1 penalties. It assigns different weights to different coefficients in the L1 penalty, usually based on preliminary estimates of the coefficients.

This implementation follows the scikit-learn API design and can be used as a drop-in replacement for other scikit-learn linear models.

Installation

pip install adalasso

Usage

from adalasso import AdaptiveLasso
from sklearn.datasets import make_regression
from sklearn.model_selection import train_test_split

# Generate sample data
X, y = make_regression(n_samples=100, n_features=20, n_informative=5, random_state=42)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# Initialize and fit the model
model = AdaptiveLasso(alpha=0.1, gamma=1.0)
model.fit(X_train, y_train)

# Make predictions
y_pred = model.predict(X_test)

# Access model coefficients
print("Coefficients:", model.coef_)
print("Intercept:", model.intercept_)

Parameters

  • alpha: Regularization strength
  • gamma: Power parameter for the adaptive weights
  • fit_intercept: Whether to calculate the intercept
  • max_iter: Maximum number of iterations
  • tol: Tolerance for optimization

See the class documentation for a full list of parameters.

Development

Running Tests

To run the tests, you'll need to install the development dependencies:

pip install pytest pytest-cov

Then run the tests with:

pytest --cov=adalasso adalasso/tests/

Visualization Examples

Regularization Path Comparison

The following figure shows how coefficients evolve with different regularization strengths for standard Lasso versus Adaptive Lasso:

Adaptive Lasso Regularization Path

Feature Selection Performance

This figure demonstrates how Adaptive Lasso performs better at selecting the correct number of non-zero features across different regularization strengths:

Feature Selection vs Regularization

References

  • Zou, H. (2006). The adaptive lasso and its oracle properties. Journal of the American Statistical Association, 101(476), 1418-1429.

License

MIT License

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

adalasso-0.1.1.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

adalasso-0.1.1-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

Details for the file adalasso-0.1.1.tar.gz.

File metadata

  • Download URL: adalasso-0.1.1.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.15

File hashes

Hashes for adalasso-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4ca7ba3f185e4e8b4253343c6c200ff2b93b89e89236059c2961e0bf09d962fb
MD5 39ca561eb6ea1f03fa8427939b97bcbf
BLAKE2b-256 c12b2541cef05925d42fad4d6c10108c50c1ce4a16bb8e3a620ebdda9283090b

See more details on using hashes here.

File details

Details for the file adalasso-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: adalasso-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 8.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.15

File hashes

Hashes for adalasso-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5b9bd9d61f0e660c8d33719bc93fe134e7a41f29e60df2ca6cfe741efdb0be3a
MD5 33a6a587c6f79dbf025147b4b25ecb1b
BLAKE2b-256 e0bae18d5d8657112a747e66cd323d24af73fd6067031e0f77dbff56fb99e730

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