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で実行しています。
ダウンロードフォルダに移動
1 2 |
cd C:\Users・・・ ※C:\Users以降はダウンロードしたデータが保存されているフォルダのパスを記載してください。 |
データセットをダウンロードすると、「numerai_datasets.zip」がダウンロードフォルダに保存されているかと思います。
「numerai_datasets.zip」は好きな場所に保存して良いですが、zipファイルを展開した後、「numerai_datasets」フォルダ内にあるサンプルコードを実行するために、
コマンドプロンプトを 開き、カレントディレクトリをデータセットが保存されているフォルダに変更しています。
pipのアップグレード
1 |
pip install --upgrade pip |
LightGBMやPandasなど、予測を行うために必要なライブラリがあります。
pipでライブラリをインストールするときは、pipが最新バージョンでないためにエラーが発生することがあります。先にアップグレードしておきましょう。
ライブラリのインストール
1 |
pip install -r requirements.txt |
「requirements.txt」はダウンロードしたフォルダの中にあり、必要なライブラリの一覧が記載されています。
一つ一つインストールするのは面倒なので、ファイルごと指定してまとめてインストールしています。
サンプルコードの実行
先に知っておきたい注意点があります。
ローカルで初めて実行するときは、numeraiが用意しているAPIの取得に数分かかります。
また、サンプルコード「exampli_model.py」の実行には45分~60分の時間がかかると記載されています。
問題なければ以下のコマンドを実行してみましょう。
1 |
python example_model.py |
「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」に進みます。
「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」とあり、予測データのアップロードを受け付けていることを指します。
指定時間外だと↓このようなステータスになります。
「Submission Status」の項目が「None」とありますが、これは時間内に予測の提出がなかったことを指しています。この後に提出しても「Late」へ変化するのみです。
※補足終了
検証用データの提出時と同じ流れで「tournament_predictions.csv」をアップロードすると以下のようになります。
「Submission Status」の項目が「On-Time」となりました。
これで今回のRoundへの参加が完了しています。
まとめ
ここまで、Numeraiに登録した後の流れ(データダウンロード~予測~予測データのアップロード)を体験してみました。
ここから先は、下記の内容をはじめとして勉強しつつ、各Roundに参加していくことになります。
- 統計の学習
- 機械学習の学習
- 金融のドメイン知識の獲得
- モデルの構築と登録
- ステーキング
- 提出の自動化
必要に応じてNumeraiのドキュメントや、(日本語版も用意されています。)
私はこちらの記事を参考にさせて頂いています。
コメント