ProjSplitFit is an implementation of the projective splitting algorithm suitable for convex data fitting problems such as lasso and logistic regression. It is highly flexible and may be applied to a wide variety of problems involving multiple regularizers and different types of loss functions, including user-defined losses and regularizers. It can handle regularizers which are composed with linear operators.
Projective splitting is a scalable first-order optimization solver. This package is implemented using NumPy and is suitable for large-scale problems.
Please read the user guide. This is a comprehensive and complete guide to how to use ProjSplitFit.
The most important file here is the user guide. Your first step should be to consult the user guide which has installation instructions, a tutorial, and the complete documentation of the package.
Here are the key modules related to the package:
- projSplitFit.py: the main module, including the key class ProjSplitFit
- losses.py: classes for defining the loss function in your fitting model
- lossProcessors.py: classes for instructing ProjSplitFit how to process the loss function
- regularizers.py: classes for adding regularizers to the model.
The following are helper modules used internally in ProjSplitFit (it should not be necessary to use these directly):
- userInputVal.py: user input validation code
- projSplitUtils.py: miscellaneous utilities.
The following files are used to generate the documentation: index.rst, conf.py, make.bat, MakeFile, and all files in the docs directory.
Test files are in the tests directory. You will need pytest
installed to run the tests.
The tests/results directory has cached optimal values used in the tests.
The examples directory contains complete Python programs incorporating the example code discussed in the user guide.
This work was funded by National Science Foundation grant CCF-1617617, in the Computer-Communications Research program of the CISE directorate.