semvec/pypi-packages huggingface dataset:
ace-cream 0.4.post11
Alternating Conditional Expectation Algorithm
License: Apache License Version 2.0

Alternating Conditional Expectation Algorithm
=============================================

`Build Status <https://travis-ci.org/zhaofeng-shu33/ace_cream>`__
`PyPI <https://pypi.org/project/ace_cream>`__
`Windows <https://ci.appveyor.com/project/zhaofeng-shu33/ace_cream>`__

This project provides a wrapper program of Python for ACE algorithm
implementation of Fortran.

Install Binary Distribution
---------------------------

Currently, only 64-bit binary distribution is provided. Run
``pip install ace_cream`` to install the binary distribution.

+----------+-------+-------+-------+
| Platform | py3.6 | py3.7 | py2.7 |
+==========+=======+=======+=======+
| Windows  | T     | T     | T     |
+----------+-------+-------+-------+
| MacOS    |       | T     | T     |
+----------+-------+-------+-------+
| Linux    | T     | T     | T     |
+----------+-------+-------+-------+

How to build
------------

You need ``numpy`` and fortran compiler to build from source.

Windows
~~~~~~~

-  Install `Visual
   C++ <https://blogs.msdn.microsoft.com/vcblog/2017/03/07/msvc-the-best-choice-for-windows/>`__
   toolchain.

-  Download MinGW-w64 from
   `sourceforge <https://sourceforge.net/projects/mingw-w64/files/latest/download?source=typ_redirect>`__,
   which provides the necessary fortran compiler

-  Install MinGW-w64 and add ``{install_dir}\mingw64\bin`` path to
   environment variable (make ``gfortran`` accessible from command
   line).

   -  (for conda environment) Add ``{install_dir}\Anaconda3\Scripts`` to
      environment variable (make ``f2py`` accessible from command line).

Mac
~~~

You can use package manager to install ``gfortran`` (included within gnu
compiler collection). For example, with ``Homebrew`` you can use

.. code:: shell

   brew install gcc

Ubuntu
~~~~~~

To install ``gfortran``, use the default package manager:

.. code:: shell

   sudo apt-get install gfortran

Run ``python setup.py install`` from command line at the project root
directory.

How to use
----------

.. code:: python

   import numpy as np
   from ace_cream import ace_cream
   # discrete case, binary symmetric channel with crossover probability 0.1
   x = np.random.choice([0,1], size=N_SIZE)
   n = np.random.choice([0,1], size=N_SIZE, p=[0.9, 0.1])
   y = np.mod(x + n, 2)
   # set both x(cat=0) and y(cat=-1) as categorical type
   tx, ty = ace_cream(x, y, cat=[-1,0])

   # continuous case
   x = np.random.uniform(0, np.pi, 200)
   y = np.exp(np.sin(x)+np.random.normal(size=200)/2)
   tx, ty = ace_cream(x, y)

Result
------

.. figure:: ./example/continuous.svg
   :alt: image

   image

change log
----------

1. v0.1 initial commit
2. v0.2 modify to relative import in ``__init__.py``
3. v0.3 add support for multiple columns of x and other directions of
   transformation
4. v0.4 add ``f_mapping`` function and unittests for this function

License
-------

Apache License Version 2.0

Reference
---------

1. https://en.wikipedia.org/wiki/Alternating_conditional_expectations