Metadata-Version: 2.1
Name: baikal
Version: 0.2.0
Summary: A graph-based functional API for building complex scikit-learn pipelines.
Home-page: https://github.com/alegonz/baikal
Author: Alejandro González Tineo
Author-email: alejandrojgt@gmail.com
License: new BSD
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Topic :: Software Development
Classifier: Topic :: Scientific/Engineering
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Requires-Python: >=3.5
Description-Content-Type: text/x-rst
Requires-Dist: numpy
Provides-Extra: dev
Requires-Dist: codecov ; extra == 'dev'
Requires-Dist: joblib ; extra == 'dev'
Requires-Dist: mypy ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Requires-Dist: sklearn ; extra == 'dev'
Provides-Extra: viz
Requires-Dist: pydot ; extra == 'viz'


**baikal is a graph-based, functional API for building complex machine learning 
pipelines of objects that implement the scikit-learn API**. It is mostly inspired 
on the excellent `Keras <https://keras.io>`__ API for Deep Learning, and borrows 
a  few concepts from the `TensorFlow <https://www.tensorflow.org>`__ framework 
and the (perhaps lesser known) `graphkit <https://github.com/yahoo/graphkit>`__
package.

**baikal** aims to provide an API that allows to build complex, non-linear 
machine learning pipelines that looks like this: 

.. image:: https://raw.githubusercontent.com/alegonz/baikal/master/illustrations/multiple_input_nonlinear_pipeline_example_diagram.png

with code that looks like this:

.. code-block:: python

    x1 = Input()
    x2 = Input()
    y_t = Input()

    y1 = ExtraTreesClassifier()(x1, y_t)
    y2 = RandomForestClassifier()(x2, y_t)
    z = PowerTransformer()(x2)
    z = PCA()(z)
    y3 = LogisticRegression()(z, y_t)

    ensemble_features = Stack()([y1, y2, y3])
    y = SVC()(ensemble_features, y_t)

    model = Model([x1, x2], y, y_t)

**baikal** is compatible with Python >=3.5 and is distributed under the 
BSD 3-clause license.


