Keras callback to calculate Numerai consistency during training
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


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.


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 =

X_validation = validation[features].values
Y_validation =

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 =, 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))