【Numerai】初心者が登録したら初めにやること。まずは予測データをアップしてみよう

この記事は約7分で読めます。

NumeraiではKaggleのようなコンペを毎週開催しており、Numerai に登録していれば自由に参加することができます。

参加者から提出された予測データをもとに、ファンドとしてのNumeraiが運用を行っています。

用意されるデータは金融系に限られます。運用のために使われるという性質上、予測に用いたモデルを公開する必要はなく、予測結果だけを提出することになっています。

この記事では、Numeraiに登録したものの何をしたら良いのかわからなという方へ向けて、初心者の方が初めにやるべきことを紹介しています。

データダウンロード~サンプルコードの実行~予測データのアップロードまでを体験して、コンペの流れ掴むことが大切だと思うので、まずはその手順を紹介します。

この段階では、機械学習の手法を全く知らなくても問題ありません。

サンプルコードが用意されているので、必要なライブラリの準備などを含めて、実行するのに打ち込まなければならないコードは数行です。

その後完了までは時間がかかりますが、サンプルコードの実行が完了したら、後はアップロードするだけです。とても簡単ですね。

データダウンロード

Numeraiは、左メニューに「Round XXX」という枠と、「Download Data」ボタンがあります。

※XXXはRound数です。2022年2月20日現在ではRound304です。

まずは「Download Data」からデータをダウンロードしてみましょう。

データセットやサンプルコード、説明書など必要なものがそろっています。

※データサイズが2GB弱あります。

ダウンロードボタン

次の項目の内容からは、ダウンロードデータの中にある「readme.md」ファイルを参考に記載しています。

VS Codeなどで「readme.md」を開いて読んでみるとより詳しい情報を得られます。

requiament.txtで必要なライブラリをインストール

ローカルで実行していることを前提に紹介します。

※Google Colab等でも実行できるか確認しています。

私はWindows OSで実行しています。

ダウンロードフォルダに移動

データセットをダウンロードすると、「numerai_datasets.zip」がダウンロードフォルダに保存されているかと思います。

「numerai_datasets.zip」は好きな場所に保存して良いですが、zipファイルを展開した後、「numerai_datasets」フォルダ内にあるサンプルコードを実行するために、

コマンドプロンプトを 開き、カレントディレクトリをデータセットが保存されているフォルダに変更しています。

pipのアップグレード

LightGBMやPandasなど、予測を行うために必要なライブラリがあります。

pipでライブラリをインストールするときは、pipが最新バージョンでないためにエラーが発生することがあります。先にアップグレードしておきましょう。

ライブラリのインストール

「requirements.txt」はダウンロードしたフォルダの中にあり、必要なライブラリの一覧が記載されています。

一つ一つインストールするのは面倒なので、ファイルごと指定してまとめてインストールしています。

サンプルコードの実行

先に知っておきたい注意点があります。

ローカルで初めて実行するときは、numeraiが用意しているAPIの取得に数分かかります。

また、サンプルコード「exampli_model.py」の実行には45分~60分の時間がかかると記載されています。

問題なければ以下のコマンドを実行してみましょう。

「example_model.py」はダウンロードしたフォルダの中に保存されています。

実行後、しばらくするとnumerapiのダウンロードが始まり、その後予測に移ります。

実行完了時はこのような画面になります。

実行完了画面

時間がかかるので終わるまで待機です。1時間弱とありますが、実際には20分程度で完了しました。

最後の方に Done! Next stepsとあるので、順に行っています。

・検証用予測データ「validation_predictions_xxx_.csv」をdiagnostics toolにアップロード

・トーナメント用予測データ「tournament_predictions_xxx.csv」をアップロード

検証データのアップロード

実行が完了すると、「validation_predictions.csv」が作成され、アップロードすることができます。

Numeraiのサイトに行き、左メニューにある「Diagnostics Tool」に進みます。

Diagnostics Tool

「Upload Predictions」ボタンがあるので、選択して「validation_predictions.csv」をアップロード。

アップロードボタン

実のところ、サンプルコードの実行が待ちきれない人は「example_diagnostic_predictions.csv」をアップロードすることもできるようです。

私が初めて実行してみたときは、せっかくなので実行が完了するまで待ってみることにしました。

どこまで進んでいるかはプログレスバーによってわかるので、それほどストレスはありません。

余談ですが、ダウンロードフォルダ内に拡張子が「parquet」のファイルがありますが、ファイルフォーマットの1種みたいですね。必要なカラムだけを読み込むことでデータアクセスの速度を向上しているそうです。

検証結果はこのようになりました。

1つ1つの項目の見方は追々勉強していきましょう。

検証結果

こちらの結果が満足いくものでなければ、モデルを修正してもう一度検証・・・という流れを繰り返していくことになります。

今回はそういったことはせず、検証を完了とします。

次は、本番用の予測データを提出します。

予測データのアップロード

Numeraiのトップページにある左メニューに「Round xxx」の枠があるので、そちらの「Upload Predictions」へ進みます。

ちなみに、各Roundに参加するためには、指定された時間内に予測データを提出しなければなりません。

UTC(世界標準時)で、土曜日の18時~月曜日の14:30の間です。

この間は以下のステータスになります。

「Submission Status」の項目が「Awaiting」とあり、予測データのアップロードを受け付けていることを指します。

Round中

指定時間外だと↓このようなステータスになります。

「Submission Status」の項目が「None」とありますが、これは時間内に予測の提出がなかったことを指しています。この後に提出しても「Late」へ変化するのみです。

ダウンロードボタン

※補足終了

検証用データの提出時と同じ流れで「tournament_predictions.csv」をアップロードすると以下のようになります。

「Submission Status」の項目が「On-Time」となりました。

これで今回のRoundへの参加が完了しています。

アップロード完了

 

まとめ

ここまで、Numeraiに登録した後の流れ(データダウンロード~予測~予測データのアップロード)を体験してみました。

ここから先は、下記の内容をはじめとして勉強しつつ、各Roundに参加していくことになります。

  • 統計の学習
  • 機械学習の学習
  • 金融のドメイン知識の獲得
  • モデルの構築と登録
  • ステーキング
  • 提出の自動化

必要に応じてNumeraiのドキュメントや、(日本語版も用意されています。)

私はこちらの記事を参考にさせて頂いています。

機械学習による株価予測 はじめようNumerai – Qiita

機械学習による株価予測 いろはの”い” – Qiita

Tips-機械学習による株価予測 – これからの「お金」の話をしよう (love-profit.com)

コメント