Metadata-Version: 2.0
Name: binopt
Version: 0.2.0
Summary: Categorisation of labeled data
Home-page: https://github.com/yhaddad/binopt
Author: Yacine Haddad
Author-email: yhaddad@cern.ch
License: GNU General Public License v3
Description-Content-Type: UNKNOWN
Keywords: binopt
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2.7
Requires-Dist: Click (>=6.0)
Requires-Dist: scipy
Requires-Dist: numpy
Requires-Dist: matplotlib
Requires-Dist: pip (>=8.1.2)
Requires-Dist: bumpversion (>=0.5.3)
Requires-Dist: wheel (>=0.29.0)
Requires-Dist: watchdog (>=0.8.3)
Requires-Dist: flake8 (>=2.6.0)
Requires-Dist: coverage (>=4.1)
Requires-Dist: Sphinx (>=1.4.8)
Requires-Dist: PyYAML (>=3.11)

===============================
binopt
===============================


.. image:: https://img.shields.io/pypi/v/binopt.svg
        :target: https://pypi.python.org/pypi/binopt


.. image:: https://img.shields.io/travis/yhaddad/binopt.svg
        :target: https://travis-ci.org/yhaddad/binopt


.. image:: https://readthedocs.org/projects/binopt/badge/?version=latest
        :target: https://binopt.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status


.. image:: https://pyup.io/repos/github/yhaddad/binopt/shield.svg
     :target: https://pyup.io/repos/github/yhaddad/binopt/
     :alt: Updates

.. image:: https://zenodo.org/badge/86721620.svg
   :target: https://zenodo.org/badge/latestdoi/86721620


This package is aiming to categorize labeled data in terms of a global figure of merit. In high energy physics, categorization of collision data is done by maximizing the discovery significance. This package run on unbinned binary datasets.

installation
************
Install like any other python package::

pip install binopt --user

or::

git clone git@github.com:yhaddad/binopt.git
cd binopt/
pip install .

Getting started
***************

.. code-block:: python

   sevent = 1000
   bevent = 10000
   X = np.concatenate((
                expit(np.random.normal(+2.0, 2.0, sevent)),
                expit(np.random.normal(-0.5, 2.0, bevent))
   ))
   Y = np.concatenate((
                np.ones(sevent),
                np.zeros(bevent)
   ))
   W = np.concatenate((np.ones(sevent), np.ones(bevent)))

   binner = binopt.optimize_bin(
                nbins=3, range=[0, 1],
                drop_last_bin=True,
                fix_upper=True,
                fix_lower=False,
                use_kde_density=True
   )
   opt = binner.fit(
                X, Y, sample_weights=W,
                method="Nelder-Mead",
                breg=None, fom="AMS2"
   )

   print "bounds : ", opt.x
   print "signif : ", binner.binned_score(opt.x)
   print "Nsig   : ", binner.binned_stats(opt.x)[0]
   print "Nbkg   : ", binner.binned_stats(opt.x)[1]


* Free software: GNU General Public License v3
* Documentation: https://binopt.readthedocs.io.


Features
--------

* TODO

Credits
---------

This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage


=======
History
=======

0.1.0 (2017-04-06)
------------------

* First release on PyPI.


