この記事は、Numerai Advent Calendar 2021 の4日目の記事です。
Numeraiで数か月前に特徴量が大幅に増えた際(Massive data)、いつかBoruta-Shapで試してみようと思っていました。
Boruta-Shapライブラリ https://github.com/Ekeany/Boruta-Shap
Boruta-Shapについての説明は詳しい方に譲るとして、試験的に運用した結果を報告致します。
サマリ
- すでにBoruta-ShapをNumeraiで試したレポート(仮に論文値とします)がある。 - Massive Dataになってターゲットが3つに増えた。(2021/12/22 現在ターゲットは20あります) - 論文値のターゲットは1つのみ検証済み - 今回3つのターゲット毎に自分で特徴量を選択。それらについて論理積・論理和の特徴量調査。 - 論文値含め、3つのモデルで1か月半運用(ただし終了したのは2ラウンドのみ。12/3現在) - 今後のメインモデル候補が見つかった。めでたし。KaggleでBoruta-Shapと出会う。
Tabular Playground Series - Oct 2021にてスコアが伸び悩んでた頃、下記のLUCA MASSARON氏の投稿でBoruta-Shapを知る。ここでスコアが劇的に改善し感動。また質問に対してもいろいろ親切にお答えいただいた(感謝) https://www.kaggle.com/lucamassaron/feature-selection-using-boruta-shapNumeraiでまたBoruta-Shapと出会う。
Numeraiを運用してちょうど1年。非エンジニアで数学すらやっていないけど少しずつ勉強している私。いつか「NumeraiでBoruta-Shap使ってみよ」と思っていたところ、mdo氏の投稿を発見。ただ3つあるターゲットのうち、一つだけだったが、選択した特徴量も公開されていた。 https://forum.numer.ai/t/feature-selection-with-borutashap/4145自分でもやってみた
せっかくなので3つのターゲット毎に実践。 ```"target_nomi_20", "target_nomi_60", "target_jerome_20"``` コードは公開してませんが、mdo氏の論文モデルとほぼ同じです。3つのTargetごとに違いを検証
published features = n35(論文値n38じゃない理由が思い出せない、、すみません)
feature_of_target = n21 (= target_nomi_20)
feature_of_nomi60 = n113
feature_of_jerome20 = n45
total features (cup feature) = n136:3つのターゲット毎に選択した特徴量の論理和
duplicated features (cap feature) = n17:3つのターゲット毎に選択した特徴量の論理積
論文値と私の結果の比較 (feature_of_target)
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)cap feature と論文値の比較。
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)特徴量解析結果
論文値(n35)とは異なった(n21)が、せっかくなのでcup features(n136)とcap feature(n17)を試験運用してみた。(2021/12/22加筆: 12/4以降は別実験のモデルに変更してます。従ってリンク先のリザルトは本特徴量の結果とは異なります。)実証 1.5か月の運用結果 Round287-292
3model
- cap features n17 (model link KMTK49_4)