Metadata-Version: 2.4
Name: numerai-tools
Version: 0.7.2
Summary: A collection of open-source tools to help interact with Numerai, model data, and automate submissions.
License: MIT
License-File: LICENSE
Author: Numerai Engineering
Author-email: engineering@numer.ai
Requires-Python: >=3.11
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering
Requires-Dist: numpy (>=2.0.0,<3.0.0)
Requires-Dist: pandas (>=2.2.2,<4.0.0)
Requires-Dist: scikit-learn (>=1.5.0,<2.0.0)
Requires-Dist: scipy (>=1.13.0,<2.0.0)
Project-URL: Documentation, https://docs.numer.ai/
Project-URL: Homepage, https://numer.ai
Project-URL: Repository, https://github.com/numerai/numerai-tools
Description-Content-Type: text/markdown

# numerai-tools
A collection of open-source tools to help interact with Numerai, model data, and automate submissions.

## Installation
```
pip install numerai-tools
```

## Structure

- The `scoring.py` module contains critical functions used to score submissions. We use this code in our scoring system system. Leverage this to optimize your models for the tournaments.

  The Signals payout scores are built from two of its functions:
  - `neutral_correlation` ranks, gaussianizes, and neutralizes predictions against a
    neutralizer matrix, then correlates them with the target. Unlike
    `numerai_corr` it applies no 1.5 power, and unlike `feature_neutral_corr` it
    does not re-rank and re-power the predictions after neutralizing them.
  - `neutral_contribution` is `correlation_contribution` with that
    same neutralization step inserted after the rank/gaussianize step. It
    neutralizes both the submissions and the meta model against the same
    neutralizers before orthogonalizing. Predictions identical to the meta model
    have zero neutral contribution, up to floating-point precision.

- The `submissions.py` module provides helper functions to ensure your submissions are valid and formatted correctly. Use this in your automated prediction pipelines to ensure uploads don't fail.

- The `signals.py` module provides code specific to Numerai Signals such as
  churn and turnover. `neutral_churn` measures churn after applying each era's
  neutralizers, `calculate_mean_neutral_churn` averages that metric across the
  provided recent submissions, and `neutral_churn_penalty` calculates the
  positive-payout retention multiplier described by the Signals v3 churn
  penalty.

