https://github.com/fabian-sp/snspp
Stochastic Proximal Point algorithm for regularized statistical learning
https://github.com/fabian-sp/snspp
optimization statistical-learning
Last synced: 11 months ago
JSON representation
Stochastic Proximal Point algorithm for regularized statistical learning
- Host: GitHub
- URL: https://github.com/fabian-sp/snspp
- Owner: fabian-sp
- License: bsd-3-clause
- Created: 2020-05-14T14:21:43.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2024-02-19T07:55:28.000Z (about 2 years ago)
- Last Synced: 2025-03-21T08:35:01.241Z (11 months ago)
- Topics: optimization, statistical-learning
- Language: Python
- Homepage:
- Size: 214 MB
- Stars: 4
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# SNSPP
[](https://arxiv.org/abs/2204.00406)
`SNSPP` is a semismooth Newton stochastic proximal point method with variance reduction. The `SNSPP` method is implemented in [`snspp/solver/spp_solver`](/snspp/solver/spp_solver.py) and references therein.
## Introduction
We aim for solving problems of the form
+\varphi(x))
where the first part of the objective has the special form
=\frac{1}{N}\sum_{i=1}^{N}f_i(A_ix))
This problem structure is common in statistical learning problems: each summand of `f` is the loss at one data sample and `phi` is a (convex), possibly nonsmooth regularizer. Note that for optimal performance `f` and `phi` should be [Numba jitted classes](https://numba.pydata.org/numba-doc/dev/user/jitclass.html).
## Getting started
Install via
python setup.py
or in order to install in developer mode via
python setup.py clean --all develop clean --all
## Requirements
The required packages are listed in `requirements.txt`. Here we list the versions of the most important packages that were used.
```
numpy==1.21.5
numba==0.55.1
sklearn==1.1.2
scipy==1.9.1
pandas==1.4.4
matplotlib==3.5.2
seaborn==0.11.2
csr==0.4.1
```