A scikit-learn compatible wrapper for glmnet-based logistic regression.
Project description
glmpynet
glmnet-based Logistic Regression for Scikit-Learn
glmpynet is a high-performance Python wrapper for the glmnet library, providing a scikit-learn compatible estimator for penalized logistic regression.
This project aims to bridge the gap between the raw computational speed of the original Fortran/C++ glmnet code and the ease-of-use of the Python data science ecosystem. It provides a single, focused class that acts as a drop-in replacement for sklearn.linear_model.LogisticRegression for users who need the power of elastic-net regularization for binary classification.
Key Features
-
High Performance: Leverages the highly optimized, battle-tested
glmnetFortran backend for fitting models, making it suitable for large datasets. -
Scikit-learn Compatible: Implements the standard
fit,predict, andpredict_probaAPI, allowing it to be seamlessly integrated intosklearnpipelines,GridSearchCV, and other tools. -
Full Regularization Suite: Supports L1 (Lasso), L2 (Ridge), and Elastic-Net regularization for robust feature selection and prevention of overfitting.
Installation
Once released, you will be able to install glmpynet via pip:
pip install glmpynet
Quick Start
Using glmpynet is designed to be as simple as using any other scikit-learn estimator.
import numpy as np
from glmpynet import LogisticNet
from sklearn.model\_selection import train\_test\_split
from sklearn.metrics import accuracy\_score
1. Generate synthetic data
X, y = np.random.rand(100, 10), np.random.randint(0, 2, 100)
X\_train, X\_test, y\_train, y\_test = train\_test\_split(X, y)
2. Instantiate and fit the model
# alpha=1 -\> Lasso, alpha=0 -\> Ridge, 0 \< alpha \< 1 -\> Elastic-Net
model = LogisticNet(alpha=0.5)
model.fit(X\_train, y\_train)
3. Make predictions
y\_pred = model.predict(X\_test)
4. Evaluate the model
accuracy = accuracy\_score(y\_test, y\_pred)
print(f"Model Accuracy: {accuracy:.2f}")
Project Status
This project is currently in the planning and development phase. The goal is to provide a simple, robust, and well-tested wrapper for the core binary classification functionality of glmnet.
Contributing
Contributions are welcome! Please see the CONTRIBUTING.md file for guidelines on how to report bugs, suggest features, or submit pull requests.
License
This project is distributed under the MIT License.
Project details
Release history Release notifications | RSS feed
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file glmpynet-0.4.6.tar.gz.
File metadata
- Download URL: glmpynet-0.4.6.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
074cf13abd5720ed35ef08ee2640046e7a76b1bc61fc3201be9ef305facec2af
|
|
| MD5 |
48db97a0665771d2bc1a752ab1acc917
|
|
| BLAKE2b-256 |
321ff1341ef992322fc569ec5a429142785359d8d88144ee2dfd6050619fca1b
|
File details
Details for the file glmpynet-0.4.6-py3-none-any.whl.
File metadata
- Download URL: glmpynet-0.4.6-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
31045fdde8f6d7868045d2c233b2fd618712a910068725f552f5b0e1b8968c92
|
|
| MD5 |
6e7d922a615042af72e391c5d24d3f0d
|
|
| BLAKE2b-256 |
5b829688b638830133a9ba99959db1d6902bca854fc53b6d826a181781443501
|