Metadata-Version: 2.1
Name: joplen
Version: 1.0.0
Summary: Implementation of ``Joint Optimization of Piecewise Linear Ensembles'' (JOPLEn).
Author-email: Matt Raymond <mattrmd@umich.edu>, Angela Violi <avioli@umich.edu>, Clayton Scott <clayscot@umich.edu>
Project-URL: Homepage, https://gitlab.eecs.umich.edu/mattrmd-public/joplen-repositories/joplen
Project-URL: Bug Tracker, https://gitlab.eecs.umich.edu/mattrmd-public/joplen-repositories/joplen/-/issues
Classifier: Programming Language :: Python :: 3
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: matplotlib >=3.8.0
Requires-Dist: numpy >=1.24.4
Requires-Dist: scikit-learn >=1.2.0
Requires-Dist: xgboost >=2.0.1
Requires-Dist: linear-tree >=0.3.5
Requires-Dist: catboost >=1.2.5
Requires-Dist: tqdm >=4.66.2
Requires-Dist: setuptools >=64.0.0

# README

## Installation

NOTE: `pip install -e .` will only work if you have setuptools v64 or higher and pip version 24 or higher.

```bash
conda create --prefix ./my_env python=3.10
conda activate ./my_env
conda config --set env_prompt '(my_env) '

pip install -r requirements.txt
pip install -e .
```

JAX must be installed manually according to [this link](https://github.com/google/jax/discussions/16380) because the installation is hardware-dependent.
Please follow [these instructions](https://jax.readthedocs.io/en/latest/installation.html) to install JAX.

## Usage

Each module has example usage.
You can run them by executing the module as a script.
Note that single-task JOPLEn is much more modular than the multitask implementation.
This is for practical reasons, but there's no reason it couldn't be made more modular.

```bash
python -m JOPLEn.singletask # single-task joplen
python -m JOPLEn.multitask # multi-task joplen
python -m JOPLEn.competing # Friedman ensemble refitting
```
