ランダムフォレストを使用した機能選択


16

ほとんどが相関性が高く、非常にノイズが多い(たとえばテクニカルインジケーター)ほとんどが金融変数(120の機能、4 kの例)のデータセットがあるため、モデルトレーニング(バイナリ分類)で使用するために最大20-30を選択したいと思います-増加/減少)。

機能のランキングにランダムフォレストを使用することを考えていました。それらを再帰的に使用するのは良い考えですか?たとえば、最初のラウンドで最悪の20%をドロップし、2番目も同様に、目的の数の機能を取得するまで続けます。RFで相互検証を使用する必要がありますか?(CVを使用しないのは直感的です。なぜなら、CVはRFで既に行われていることだからです。)

また、ランダムフォレストを使用する場合、機能の重要性を取得するために、実際の増加/減少のバイナリまたはリグレッサーの分類子として使用する必要がありますか?

ちなみに、特徴選択後に試してみたいモデルは、SVM、ニューラルネット、局所加重回帰、ランダムフォレストです。私は主にPythonで働いています。


2
洞察を交換するために接続したいと思います。私は同様のものに取り組んでいます
-user670186

誰もがちょうど使用することを示唆していない理由は何らかの理由があるbuilt-inの属性RandomForestClassifiersklearn呼ばれるがfeature_importances_......?リンクに表示されます。
Candic3

multicollinearity機能の重要性と機能の選択をゆがめる可能性があるため注意してください。ここで
Candic3

デフォルトのアルゴリズムに注意してください:parrt.cs.usfca.edu/doc/rf-importance/index.html
ティム

回答:


12

特徴の選択には、スコアリング関数スコアリング関数を最適化するための検索方法が必要です。

関連する重要度スコアを定義する場合、機能のランキング方法としてRFを使用できます。RFは、置換方法を使用してランダムに基づいてフィーチャを選択し、すべてのサブセットを個別のサブスペース(ランダムサブスペースと呼ばれる)にグループ化します。重要なスコアリング関数の1つは、そのランダムな部分空間内のすべてのフィーチャにすべてのツリーの精度を割り当てることに基づく可能性があります。次に、これを個別のツリーごとに行います。部分空間の生成元はランダムなので、重要度スコアを計算するためのしきい値を設定できます。

概要:

ステップ1:フィーチャX2が25%のツリーに表示されている場合は、スコアを付けます。それ以外の場合、機能のパフォーマンスに関する十分な情報がないため、機能のランキングを検討しないでください。

ステップ2:次に、X2が表示されるすべてのツリーのパフォーマンススコアをX2に割り当て、スコアを平均します。例:perf(Tree1)= 0.85 perf(Tree2)= 0.70 perf(Tree3)= 0.30

次に、機能X2 =(0.85 + 0.70 + 0.30)/ 3 = 0.6167の重要性

機能の分割の深さまたは情報ゲイン値を決定ツリーに含めることで、より高度な設定を検討できます。決定木とRFに基づいてスコアリング関数を設計するには、多くの方法があります。

検索方法に関しては、再帰的な方法は、上位にランクされたものを選択する方法として合理的です。

最後に、機能を選択する際にRFを分類子または回帰モデルとして使用できます。どちらもRFを使用するとパフォーマンススコアが提供されるためです。スコアは、out-of-bag OOBサンプルに基づいているため指標であり、より単純な設定では相互検証を考慮しない場合があります。


入力いただきありがとうございます。それを指摘したかった(0.85+0.70+0.30)/3 = 0.6167
ヘンディ

5
Pythonを使用している場合、ランダムフォレストを呼び出すときにsklearnで計算された変数重要度を直接使用できます。
スクラッチ14年

5

ほとんどが相関性が高く、非常にノイズが多い(たとえばテクニカルインジケーター)ほとんどが金融変数(120の機能、4 kの例)のデータセットがあるため、モデルトレーニング(バイナリ分類)で使用するために最大20-30を選択したいと思います-増加/減少)。

4kの例は、非常に高度なものを推定するのには本当に十分ではありません-最も単純な可能なモデル(線形/ロジスティック回帰、線形svm)と少数の変数を使用する必要があります

データにノイズがあり、相関がある場合、PCAはおそらく最善の策です[個々の指標で平均化された共通信号を効果的に識別しています]

L2正則化(線形モデルの場合)もノイズの平均化に役立ちます[たとえば、同じ信号のノイズの多いコピーがn個ある場合、l2正則化は重みが同じになるように促します-これらのn変数の平均化]

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.