Metadata-Version: 2.0
Name: numeraicb
Version: 1.0.0
Summary: Keras Callback to track Numerai consistency
Home-page: https://github.com/volker48/numeraicb
Author: Marcus McCurdy
Author-email: marcus.mccurdy@gmail.com
License: MIT
Description-Content-Type: UNKNOWN
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Dist: Keras (>=2.0.0)
Requires-Dist: pandas (>=0.18.1)
Requires-Dist: numpy (>=1.9.1)
Requires-Dist: scikit-learn (>=0.18)


==========================
Keras Consistency Callback
==========================

A Keras callback that calculates your model's consistency during training at
each epoch. The callback prints the consistency and also adds the consistency at
the end of each epoch to the training history under the ``consistency`` key.

Usage
-----

Here is a usage example::

    import pandas as pd
    from numeraicb import Consistency
    from keras.models import Sequential
    from keras.layers.core import Dense

    train = pd.read_csv('numerai_training_data.csv')
    tourn = pd.read_csv('numerai_tournament_data.csv')

    validation = tourn[tourn.data_type == 'validation']

    features = ['feature{}'.format(i) for i in range(1, 51)]

    X = train[features].values
    Y = train.target.values

    X_validation = validation[features].values
    Y_validation = validation.target.values

    model = Sequential()
    model.add(Dense(30, kernel_initializer='uniform', input_dim=X.shape[1], activation='relu'))
    model.add(Dense(1, activation='sigmoid'))
    model.compile(optimizer='adamax', loss='binary_crossentropy')

    cb = Consistency(tourn)

    # Now your models consistency will be printed at each epoch
    history = model.fit(X, Y, callbacks=[cb], validation_data=(X_validation, Y_validation))

    # Consistency is stored in the history as well
    for epoch, consistency in enumerate(history.history['consistency']):
        print('consistency at epoch {}: {:.2%}'.format(epoch, consistency))













