Numerai: Boruta-Shapで特徴量選択し、1か月半運用したので報告します。


この記事は、<a href='https://adventar.org/calendars/6226'>Numerai Advent Calendar 2021</a> の4日目の記事です。

Numeraiで数か月前に特徴量が大幅に増えた際（Massive data）、いつか<a href ='https://github.com/Ekeany/Boruta-Shap'>Boruta-Shap</a>で試してみようと思っていました。
Boruta-Shapライブラリ　https://github.com/Ekeany/Boruta-Shap

Boruta-Shapについての説明は詳しい方に譲るとして、試験的に運用した結果を報告致します。
<h5>サマリ</h5>
-　すでに<a href ='https://forum.numer.ai/t/feature-selection-with-borutashap/4145'>Boruta-ShapをNumeraiで試したレポート</a>（仮に論文値とします）がある。
-　Massive Dataになってターゲットが3つに増えた。(2021/12/22 現在ターゲットは20あります）
-　論文値のターゲットは1つのみ検証済み
-　今回３つのターゲット毎に自分で特徴量を選択。それらについて論理積・論理和の特徴量調査。
-　論文値含め、3つのモデルで1か月半運用（ただし終了したのは2ラウンドのみ。12/3現在）
-　今後のメインモデル候補が見つかった。めでたし。

<h5>KaggleでBoruta-Shapと出会う。</h5>
Tabular Playground Series - Oct 2021にてスコアが伸び悩んでた頃、下記のLUCA MASSARON氏の投稿でBoruta-Shapを知る。ここでスコアが劇的に改善し感動。また質問に対してもいろいろ親切にお答えいただいた（感謝）
https://www.kaggle.com/lucamassaron/feature-selection-using-boruta-shap

<h5>NumeraiでまたBoruta-Shapと出会う。</h5>
Numeraiを運用してちょうど1年。非エンジニアで数学すらやっていないけど少しずつ勉強している私。いつか「NumeraiでBoruta-Shap使ってみよ」と思っていたところ、mdo氏の投稿を発見。ただ3つあるターゲットのうち、一つだけだったが、選択した特徴量も公開されていた。
https://forum.numer.ai/t/feature-selection-with-borutashap/4145

<h5>自分でもやってみた</h5>
せっかくなので３つのターゲット毎に実践。
```"target_nomi_20", "target_nomi_60", "target_jerome_20"```
コードは公開してませんが、mdo氏の論文モデルとほぼ同じです。

<h5>3つのTargetごとに違いを検証</h5>
 
published features = n35(論文値n38じゃない理由が思い出せない、、すみません）
feature_of_target　= n21　(= target_nomi_20)
feature_of_nomi60 = n113
feature_of_jerome20 = n45
total features (cup feature) = n136：３つのターゲット毎に選択した特徴量の論理和
duplicated features (cap feature) = n17：３つのターゲット毎に選択した特徴量の論理積

<h4>論文値と私の結果の比較 (feature_of_target)</h4>
A: published features
B: my results
n35+ n21 -> n39
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367451/a09c457d-3a33-0e3b-561d-e907c7e15589.png)

<h4>cap feature　と論文値の比較。</h4>
A: published features
B: cap features
論理積は論文値の特徴量を含み、かつ約半分に選抜。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367451/9d451242-bdb9-2914-1057-1ef0dc26d54d.png)

<h5>特徴量解析結果</h5>
論文値(n35)とは異なった(n21）が、せっかくなのでcup features(n136)とcap feature(n17)を試験運用してみた。(2021/12/22加筆: 12/4以降は別実験のモデルに変更してます。従ってリンク先のリザルトは本特徴量の結果とは異なります。）

実証　1.5か月の運用結果 Round287-292
3model

- 論文値 n35 (model link <a href='https://numer.ai/kmtk49_2'>KMTK49_2</a>)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367451/7f1fabb0-2df2-f3be-6745-52a39985c17f.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367451/e0627a24-8e23-e57a-6d95-5477378c9309.png)


- cup features n136 (model link <a href='https://numer.ai/kmtk49_5'>KMTK49_5</a>)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367451/0010730b-1726-cb28-f0e0-3688beb45812.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367451/f66a2ab1-af7e-8fd0-4c34-d86c6ab5cd84.png)


- cap features n17 (model link <a href='https://numer.ai/kmtk49_4'>KMTK49_4</a>)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367451/2a211c51-25ba-53d4-b20b-e6aece3a86c5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/367451/b018c781-4ee6-3853-8061-0f9dc2946539.png)

<h5>運用結果</h5>
みんなこんがりとBurnしてますが、Cap featuresはいきなりメダルとりまくってくれてました。今後はこいつに頑張ってもらうことになるかもしれません。ご参考までに。
まだど素人なのでご指摘等ございましたら是非ともよろしくお願い致します。