# データ

## データ構造

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

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

![Numerai データ構造例](https://2654014128-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-MLOmmBFnXJPLF6jO8k-%2Fuploads%2Fgit-blob-a752fe4d72116df9505b2d059a4032feea72bcb4%2Fdata_example_image.png?alt=media)

## 特徴

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

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

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

そのため、少数の特徴に依存しすぎたり、相関性の高いモデルを構築することは、パフォーマンスに一貫性がなくなる可能性が高いため、お勧めしません。詳しくは[こちら](https://forum.numer.ai/t/model-diagnostics-feature-exposure/899)をご覧ください。

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

## ターゲット

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

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

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

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

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

## Era

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

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

ヒストリカルデータ（トレーニング、検証）では、各時代の間隔は1週間ですが、目標値は20日または60日先読みすることができます。これは目標値が「重複」していることを意味するので、クロスバリデーションを適用する際には特別な注意が必要です。詳しくは[こちら](https://forum.numer.ai/t/era-wise-time-series-cross-validation/791)を参照のこと。

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

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

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

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

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

```python
from numerapi import NumerAPI
napi = NumerAPI()

napi.list_datasets()
# => ['v5.0/features.json',
#  'v5.0/live.parquet',
#  'v5.0/live_benchmark_models.parquet',
#  'v5.0/live_example_preds.csv',
#  'v5.0/live_example_preds.parquet',
#  'v5.0/meta_model.parquet',
#  'v5.0/train.parquet',
#  'v5.0/train_benchmark_models.parquet',
#  'v5.0/validation.parquet',
#  'v5.0/validation_benchmark_models.parquet',
#  'v5.0/validation_example_preds.csv',
#  'v5.0/validation_example_preds.parquet']

# Download the training data
napi.download_dataset("v5.0/live.parquet")
```

* `train.parquet` には、特徴とターゲットを含む、学習用のデータが含まれています。
* `validation.parquet` には、特徴量とターゲットを含む、評価用のデータが含まれます。
* `live.parquet`には、現在のラウンドのターゲットなしの最新のライブ特徴量が含まれます。
* `features.json` には、特徴量と特徴量セットに関するメタデータが含まれます。
* `meta_model.parquet` には、過去のラウンドのメタモデル予測が含まれます。
* `live_example_preds.parquet` には、サンプルモデルの最新のライブ予測が含まれます。
* `validation_example_preds.parquet` には、サンプルモデルの検証予測値が格納されています。

### データリリース

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

[Numeraiのデータページ](https://numer.ai/data/)から最新のデータを確認してください。
