l0-penalized-lambda-search
Science Score: 44.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (15.7%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: mapasche
- Language: Jupyter Notebook
- Default Branch: main
- Size: 344 KB
Statistics
- Stars: 0
- Watchers: 1
- Forks: 1
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
L0-Penalized Lambda Search
This repository contains the implementation of a Branch-and-Bound (BnB) algorithm designed to solve least squares problems with an L0-norm penalty, promoting sparsity in the solution vector. This work is part of a research project conducted in France, aiming to explore the impact of penalization on sparse least-squares solutions.
Overview
The primary objective of this project is to develop an algorithm that identifies intervals of the penalization parameter (λ) where the optimal solution remains unchanged. By leveraging the Fenchel dual formulation of the relaxed problem, we establish conditions for infeasibility, thereby delineating the parameter range where the solution is valid. The methodology is detailed in our report, "Impact of Penalization on Sparse Least-Squares Solutions."
Repository Structure
BnB_normal.py: Contains the main implementation of the Branch-and-Bound algorithm.LSA.py: Implements the Least Squares Approximation with L0 penalization.node.py: Defines the data structure for nodes used in the BnB algorithm.utils.py: Utility functions supporting the main algorithms.Testing.ipynb: Jupyter Notebook demonstrating the usage and testing of the implemented algorithms.exp.jl: Julia script used for experimental comparisons..gitignore: Specifies files and directories to be ignored by git.CITATION.cff: Citation file for referencing this work.
Getting Started
Prerequisites
Ensure you have Python 3.x installed and jupyter.
Running the Branch-and-Bound Algorithm
To execute the BnB algorithm for the least squares problem with $L_0$ penalization, run:
bash
python BnB_normal.py
This will initiate the algorithm with default parameters. For custom configurations, you can modify the parameters within the script or extend the code to accept command-line arguments
Testing and Examples
The Testing.ipynb notebook provides examples and tests demonstrating the functionality of the implemented algorithms. It includes:
- Problem setup and parameter initialization.
- Execution of the BnB algorithm.
- Analysis of results and visualization.
To view and run the notebook:
- Ensure you have Jupyter Notebook installed.
- Navigate to the repository directory.
- Launch the notebook:
bash
jupyter notebook Testing.ipynb
Methodology
The Branch-and-Bound algorithm is employed to handle the NP-hard nature of the $L_0$-penalized least squares problem. Each node in the search tree represents a decision point for the inclusion or exclusion of variables in the solution vector. The algorithm alternates between processing the current node (bounding step) and selecting the next node to process (branching step). Detailed explanations of these steps are provided in our report.
Results and Validation
Our approach was tested on simplified cases, such as using an identity matrix as the dictionary and a given vector y. The results indicated that the identified interval encompassed the entire parameter space, providing no additional insights. While the method shows promise, further research and alternative implementations are necessary to obtain more informative results.
Acknowledgments
We extend our gratitude to all individuals who provided guidance and supervision for this project at CentraleSupélec, Rennes.
References
For a comprehensive understanding of the methodology and results, please refer to our report:
Pasche, M., Di Fatta, G., Dieudonne, G., Montant, T., Delecourt, C., Huhardeaux, L., & Elvira, C. (2025). Impact of Penalization on Sparse Least-Squares Solutions. CentraleSupélec, Rennes, France.
Owner
- Name: Martin Pasche
- Login: mapasche
- Kind: user
- Repositories: 2
- Profile: https://github.com/mapasche
Student of engineering at Pontificia Universidad Católica
Citation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: 1.2.0
title: L0-Penalized-lambda-search
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Martin
family-names: Pasche
email: martin.pasche@student-cs.fr
affiliation: CentraleSupélec
- given-names: Guillaume
family-names: Di Fatta
email: guillaume.difatta@student-cs.fr
affiliation: CentraleSupélec
repository-code: 'https://github.com/mapasche/L0-Penalized-lambda-search.git'
keywords:
- l0-penalization
- Branch-and-Bound
GitHub Events
Total
- Issue comment event: 1
- Push event: 3
- Pull request event: 4
- Fork event: 1
Last Year
- Issue comment event: 1
- Push event: 3
- Pull request event: 4
- Fork event: 1
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 0
- Total pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: 2 months
- Total issue authors: 0
- Total pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 1.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 1
- Average time to close issues: N/A
- Average time to close pull requests: 2 months
- Issue authors: 0
- Pull request authors: 1
- Average comments per issue: 0
- Average comments per pull request: 1.0
- Merged pull requests: 1
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
- martinpasche (1)