データ

データ構造

Numerai データセットは、世界の株式市場を時系列に記述した表形式のデータセットです。

Eraは日付を表し、idは銘柄と各Eraが匿名化されたIDである。特徴量はその時点で判明している銘柄の属性(例えばPER)を表し、targetはその時点に対する将来のリターン(20日後/60日後)を表す。

特徴

データセットには、PERのようなファンダメンタルズから、RSIのようなテクニカルシグナル、空売りのようなマーケットデータ、アナリストの格付けのようなセカンダリーデータなど、多くの特徴があります。

各特徴はNumeraiによって綿密に設計され、ターゲットの予測に役立つように、あるいは他の特徴との相乗効果が得られるように設計されています。リーク問題を回避するため、すべての特徴量がその地点のデータを表すよう細心の注意を払っています。

多くの特徴はそれ自体でターゲットを予測することができますが、その予測力は時間の経過とともに一貫性を欠くことが知られています。

そのため、少数の特徴に依存しすぎたり、相関性の高いモデルを構築することは、パフォーマンスに一貫性がなくなる可能性が高いため、お勧めしません。詳しくはこちらをご覧ください。

注:いくつかの特徴値はNaNになる可能性があります。これは、その時点では利用できない特徴データがあるためです。

ターゲット

データセットのターゲットは、ヘッジファンドの戦略に合うように特別に設計されています。

我々のヘッジファンドが市場/国/セクター、ファクター・ニュートラルであることから、基本的にターゲットは市場/国/セクターの広範なトレンドやよく知られたファクターでは説明できない銘柄固有のリターンと解釈できます。簡単に言えば、私たちが求めているのは「アルファ」なのです。

メインターゲットとは別に、私たちは様々なタイプの株式固有のリターンである多くの補助ターゲットを提供しています。メインターゲットと同様に、これらの補助ターゲットも銘柄固有のリターンに基づいていますが、残差化されるもの(例:市場/国対セクター/ファクター)や時間軸(例:20日/60日)が異なります。

我々の目的はメインターゲットを予測することですが、これらの補助的なターゲットもモデル化することが有用であることが分かっています。時には、補助ターゲットで学習したモデルがメインターゲットで学習したモデルを上回ることもあります。他のシナリオでは、異なるターゲットで訓練されたモデルのアンサンブルを構築することもパフォーマンスに役立つことがわかりました。

注意:補助ターゲットの値がNaNになることはありますが、メインターゲットがNaNになることはない。これは、あるターゲット・データがその時点では利用できないためで、偽の値を作る代わりに、それをどのように扱うかを自分で選択できるようにしています。

Era

Erasは異なる時点を表し、特徴値はその時点のものであり、Targetはその時点より未来の値です。

各行を1つのデータポイントとして扱うのではなく、各Eraを1つのデータポイントとして扱うことを強く考慮すべきである。これと同じ理由で、Numeraiの指標の多くは「Eraごと」に計算されています。例えば、Numeraiで使われているCorrはEraごとの平均値が用いられています。

ヒストリカルデータ(トレーニング、検証)では、各時代の間隔は1週間ですが、目標値は20日または60日先読みすることができます。これは目標値が「重複」していることを意味するので、クロスバリデーションを適用する際には特別な注意が必要です。詳しくはこちらを参照のこと。

ライブデータでは、各新ラウンドに新たなEraのライブ特徴量が含まれるが、その間隔はわずか1日です。

Numeraiデータセットへアクセスする方法

Numeraiデータセットにアクセスする最良の方法は、データAPIを利用することです。

Numeraiデータセットは多くの異なるファイルで構成されています。

ここでは、どのファイルが利用可能か、どのようにファイルをダウンロードするかを確認するために、データAPIに問い合わせる方法を説明します。

from numerapi import NumerAPI
napi = NumerAPI()

# Let's see what files are available for download in the latest v4.2 dataset
[f for f in napi.list_datasets() if f.startswith("v4.2")]
# => ['v4.2/features.json',
# 'v4.2/live_int8.parquet',
# 'v4.2/live_example_preds.csv',
# 'v4.2/live_example_preds.parquet',
# 'v4.2/meta_model.parquet',
# 'v4.2/train_int8.parquet',
# 'v4.2/validation_example_preds.csv',
# 'v4.2/validation_example_preds.parquet',
# 'v4.2/validation_int8.parquet']

# Download the training data
napi.download_dataset("v4.2/train_int8.parquet")
  • train_int8.parquet には、特徴とターゲットを含む、学習用のデータが含まれています。

  • validation_int8.parquet には、特徴量とターゲットを含む、評価用のデータが含まれます。

  • live_int8.parquetには、現在のラウンドのターゲットなしの最新のライブ特徴量が含まれます。

  • features.json には、特徴量と特徴量セットに関するメタデータが含まれます。

  • meta_model.parquet には、過去のラウンドのメタモデル予測が含まれます。

  • live_example_preds.parquet には、サンプルモデルの最新のライブ予測が含まれます。

  • validation_example_preds.parquet には、サンプルモデルの検証予測値が格納されています。

データリリース

Numeraiデータセットは、常にアップデートのあるデータセットです。一般的に、新しいモデルを構築する場合は、最新バージョンを使用することが推奨されます。

データセットの改良は、古いバージョンで学習したモデルの後方互換性を保つために、データセットの新しいバージョンとしてリリースされます。

Last updated