Numerox is a Numerai tournament toolbox written in Python.
All you have to do is create a model. Take a look at model.py for examples.
Once you have a model numerox will do the rest. First download the Numerai dataset and then load it:
>>> import numerox as nx >>> nx.download('numerai_dataset.zip') >>> data = nx.load_zip('numerai_dataset.zip') >>> data rows 637184 era 133, [era1, eraX] x 50, min 0.0000, mean 0.5025, max 1.0000 y mean 0.499924, fraction missing 0.3095
Let's use the logistic regression model in numerox to run 5-fold cross validation on the training data:
>>> model = nx.logistic() >>> prediction = nx.backtest(model, data, verbosity=1) logistic(inverse_l2=0.0001) logloss auc acc ystd stats mean 0.692885 0.5165 0.5116 0.0056 region train std 0.000536 0.0281 0.0215 0.0003 eras 120 min 0.691360 0.4478 0.4540 0.0050 sharpe 0.488866 max 0.694202 0.5944 0.5636 0.0061 consis 0.691667
OK, results are good enough for a demo so let's make a submission file for the tournament. We will fit the model on the train data and make our predictions for the tournament data:
>>> prediction = nx.production(model, data, verbosity=1) logistic(inverse_l2=0.0001) logloss auc acc ystd stats mean 0.692808 0.5194 0.5142 0.0063 region validation std 0.000375 0.0168 0.0137 0.0001 eras 12 min 0.691961 0.4903 0.4925 0.0062 sharpe 0.903277 max 0.693460 0.5553 0.5342 0.0064 consis 0.916667
Let's upload our predictions to enter the tournament:
>>> prediction.to_csv('logistic.csv') # 6 decimal places by default >>> upload_id, status = nx.upload('logistic.csv', public_id, secret_key) metric value minutes concordance True 0.0898 consistency 91.6667 0.0898 originality False 0.1783 validation_logloss 0.6928 0.1783 controlling capital False 0.1783
Have a look at the examples.
Install with pip:
$ pip install numerox
After you have installed numerox, run the unit tests (please report any failures):
>>> import numerox as nx >>> nx.test()
Requirements: python, setuptools, numpy, pandas, pytables, sklearn, numerapi, requests, nose.
- Let's chat
- See examples
- Check what's new
- Report bugs
Thank you Numerai for funding the development of Numerox.
Numerox is distributed under the the GPL v3+. See LICENSE file for details. Where indicated by code comments parts of NumPy and SciPy are included in numerox. Their licenses appear in the licenses directory.