Skip to main content

Alternating Conditional Expectation Algorithm

Project description

Build Status PyPI Windows

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++ toolchain.
  • Download MinGW-w64 from sourceforge, 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

brew install gcc

Ubuntu

To install gfortran, use the default package manager:

sudo apt-get install gfortran

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

How to use

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

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

Project details


Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page