Metadata-Version: 2.1
Name: benchopt
Version: 1.1.0
Summary: Benchmark toolkit for optimization
Home-page: UNKNOWN
Maintainer: Thomas Moreau
Maintainer-email: thomas.moreau@inria.fr
License: BSD (3-clause)
Download-URL: https://github.com/benchopt/benchopt.git
Platform: any
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: R
Classifier: Topic :: Scientific/Engineering
Classifier: Topic :: Utilities
Classifier: Topic :: Software Development :: Libraries
Description-Content-Type: text/x-rst
Requires-Dist: numpy
Requires-Dist: scipy
Requires-Dist: pandas
Requires-Dist: matplotlib
Requires-Dist: click
Requires-Dist: joblib
Requires-Dist: pygithub
Requires-Dist: mako
Requires-Dist: psutil
Requires-Dist: plotly
Provides-Extra: doc
Requires-Dist: numpydoc ; extra == 'doc'
Requires-Dist: sphinx-bootstrap-theme ; extra == 'doc'
Requires-Dist: sphinx-click ; extra == 'doc'
Requires-Dist: sphinx-gallery ; extra == 'doc'
Requires-Dist: pillow ; extra == 'doc'
Requires-Dist: scikit-learn ; extra == 'doc'
Provides-Extra: test
Requires-Dist: pytest ; extra == 'test'
Requires-Dist: pytest-timeout ; extra == 'test'
Requires-Dist: pytest-cov ; extra == 'test'
Requires-Dist: coverage ; extra == 'test'

Benchmark repository for optimization
=====================================

|Test Status| |Python 3.6+| |codecov|

BenchOpt is a package to simplify, make more transparent and
more reproducible the comparisons of optimization algorithms.

BenchOpt is written in Python but it is available with
`many programming languages <https://benchopt.github.io/auto_examples/plot_run_benchmark_python_R_julia.html>`_.
So far it has been tested with `Python <https://www.python.org/>`_,
`R <https://www.r-project.org/>`_, `Julia <https://julialang.org/>`_
and compiled binaries written in C/C++ available via a terminal
command. If it can be installed via
`conda <https://docs.conda.io/en/latest/>`_ it should just work!

BenchOpt is used through a command line as described
in `the API Documentation <https://benchopt.github.io/api.html>`_.
Ultimately running and replicating an optimization benchmark should
be **as simple as doing**:

.. code-block::

    $ git clone https://github.com/benchopt/benchmark_logreg_l2
    $ benchopt run --env ./benchmark_logreg_l2

Running this command will give you a benchmark plot on l2-regularized
logistic regression:

.. figure:: https://benchopt.github.io/_images/sphx_glr_plot_run_benchmark_001.png
   :target: how.html
   :align: center
   :scale: 80%

To discover which benchmarks are presently available look
for `benchmark_* repositories on GitHub <https://github.com/benchopt/>`_,
such as for
`l1-regularized logistic regression <https://github.com/benchopt/benchmark_logreg_l1>`_.


Learn how to `write a benchmark on our documentation <https://benchopt.github.io/how.html>`_.

Install
--------

This package can be installed through `pip`. To get the **last release**, use:

.. code-block::

    $ pip install benchopt

And to get the **latest development version**, you can use:

.. code-block::

    $ pip install -U https://github.com/benchopt/benchOpt/archive/master.zip

This will install the command line tool to run the benchmark. Then, existing
benchmarks can be retrieved from git or created locally. For instance, the
benchmark for Lasso can be retrieved with:

.. code-block::

    $ git clone https://github.com/benchopt/benchmark_lasso


Command line usage
------------------

To run the Lasso benchmark on all datasets and with all solvers, run:

.. code-block::

    $ benchopt run --env ./benchmark_lasso

Use

.. code-block::

    $ benchopt run -h

to get more details about the different options or read the
`API Documentation <https://benchopt.github.io/api.html>`_.


List of optimization problems available
---------------------------------------

- `ols`_: ordinary least-squares.
- `nnls`_: non-negative least-squares.
- `lasso`_: l1-regularized least-squares.
- `logreg_l2`_: l2-regularized logistic regression.
- `logreg_l1`_: l1-regularized logistic regression.

[![test]()]()

.. |Test Status| image:: https://github.com/benchopt/benchOpt/actions/workflows/test.yml/badge.svg
   :target: https://github.com/benchopt/benchOpt/actions/workflows/test.yml
.. |Python 3.6+| image:: https://img.shields.io/badge/python-3.6%2B-blue
   :target: https://www.python.org/downloads/release/python-360/
.. |codecov| image:: https://codecov.io/gh/benchopt/benchOpt/branch/master/graph/badge.svg
   :target: https://codecov.io/gh/benchopt/benchOpt

.. _`ols`: https://github.com/benchopt/benchmark_ols
.. _`nnls`: https://github.com/benchopt/benchmark_nnls
.. _`lasso`: https://github.com/benchopt/benchmark_lasso
.. _`logreg_l1`: https://github.com/benchopt/benchmark_logreg_l1
.. _`logreg_l2`: https://github.com/benchopt/benchmark_logreg_l2

New BSD License

Copyright (c) 2019–2020 The benchOpt developers.
All rights reserved.


Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

  a. Redistributions of source code must retain the above copyright notice,
     this list of conditions and the following disclaimer.
  b. Redistributions in binary form must reproduce the above copyright
     notice, this list of conditions and the following disclaimer in the
     documentation and/or other materials provided with the distribution.
  c. Neither the name of the Scikit-learn Developers  nor the names of
     its contributors may be used to endorse or promote products
     derived from this software without specific prior written
     permission. 


THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
DAMAGE.



