🕌

Numerai Tournament v5.0 アップデートに関する調査メモ

2024/10/13に公開

まとめ

  • Numerai Tournamentのデータがv5.0にアップデートされた

  • Feature neutrizationが効かなさそう?

  • 予測するtargetとしてはtarget_teager2b_20が強そう

  • model uploadsは公式Notebook通りで動かないので注意

変更点

初回ポスト:

https://forum.numer.ai/t/midnight-data-release/6954

リリース時ポスト:

https://forum.numer.ai/t/v5-atlas-data-release/7576

予測する株の銘柄が変わったらしい。また、Targetの名前も変わった。

7月段階での調査

以下の資料にまとめました。Feature neutrizationが効かなさそう?という結論で終わってます。

https://speakerdeck.com/nishimoto12/numerai2024nian-noatupudetotozhan-lue

Target同士の相関

Exampleに記載がある(リンク

corr_with_cyrus_v4_20
target 1.0000
target_cyrusd_20 1.0000
target_xerxes_20 0.9429
target_caroline_20 0.9221
target_sam_20 0.9120
target_ralph_20 0.8950
target_echo_20 0.8518
target_victor_20 0.8384
target_waldo_20 0.8333
target_delta_20 0.8068
target_bravo_20 0.8017
target_jeremy_20 0.7904
target_charlie_20 0.7675
target_alpha_20 0.7653
target_claudia_20 0.7451
target_teager2b_20 0.7171
target_agnes_20 0.7102
target_tyler_20 0.7071
target_rowan_20 0.7046
target_cyrusd_60 0.4893
target_xerxes_60 0.4859
target_caroline_60 0.4821
target_sam_60 0.4800
target_ralph_60 0.4772
target_echo_60 0.4616
target_victor_60 0.4593
target_waldo_60 0.4559
target_delta_60 0.4418
target_bravo_60 0.4416
target_jeremy_60 0.4380
target_charlie_60 0.4241
target_alpha_60 0.4236
target_claudia_60 0.4100
target_teager2b_60 0.3987
target_agnes_60 0.3968
target_tyler_60 0.3967
target_rowan_60 0.3917

各Targetを予測したときのSharpe

ValidationのMeanとSharpeを算出した。

target(target_cyrusd_20)を直接予測するよりSharpeが良くなる変数がいくつかある。

Mean Sharpe
target_teager2b_20 0.0246 1.2542
target_rowan_20 0.0234 1.2221
target_victor_20 0.0248 1.1847
target_claudia_20 0.0216 1.1701
target_alpha_20 0.0214 1.1688
target_caroline_20 0.0252 1.1146
target_cyrusd_20 0.0255 1.1002

予測条件は以下。

n_splits = 3 # k-fold, not shuffled
params = {
    'n_estimators': 5000,
    'boosting_type': 'gbdt',
    'learning_rate': 0.03,
    'num_leaves': 32,
    'metric': 'rmse',
    'colsample_bytree': 0.1,
    'subsample': 0.8,
    'seed': 0,
    'force_row_wise': True,
    'device': 'gpu'
}

アンサンブルも試したが、target_teager2b_20がつよい。

ハマりポイント(Model uploadsについて)

公式のNotebookでは、関数の引数2つ必要と記載されているが、以前の仕様と変わってなさそうで、
現状は引数1個でOKっぽい(pd.DataFramelive_featuresを受け取る)。

https://colab.research.google.com/github/numerai/example-scripts/blob/master/example_model.ipynb#scrollTo=13hdRk9ghMqI

Discussion