Borutaの機能選択(Rで)では、変数間の相関関係が考慮されますか?


8

私はRと機能選択の初心者で、Borutaパッケージで変数の数(n = 40)を選択(減少)しようとしました。この方法は変数間の可能な相関も考慮に入れていると思いましたが、2つ(選択した20変数のうち)は高度に相関しており、他の2つは完全に相関しています。これは正常ですか?Borutaメソッドは、2つのうちの1つを重要でないと分類すべきではありませんか?

回答:


10

...、2つ(選択した20変数のうち)は高度に相関しており、他の2つは完全に相関しています。これは正常ですか?Borutaメソッドは、2つのうちの1つを重要でないと分類すべきではありませんか?

はい、それは正常です。Borutaは、応答変数関連するすべての特徴を見つける傾向があります。厳密に言えば、予測変数はxは私がに関連するといわれているyの場合、xは、私yは(単にそれが意味するだろうか、与えられた何も、他のいくつかの予測変数与えられた条件付きで独立していないxはIおよびyは独立していません)。yバツyバツyバツy

この簡単な例を考えてみましょう:

set.seed(666)
n <- 100
x1 <- rnorm(n)
x2 <- x1 + rnorm(n,sd=0.5)
x3 <- rnorm(n)
y <- x2 + rnorm(n) 

あなたが見ることは、X 2に関連しているYので、Y及びX 2は独立していません。また、x 2 = x 1 + ノイズであり、yx 2から独立していないこともわかります。yに関連しない唯一の変数はx 3です。y=バツ2+ノイズバツ2yyx2x2=x1+noiseyx2yx3

  • x 3は独立していますyx3
  • 及び X 3は、所定の条件付き独立である X 1yx3バツ1
  • x 3は条件付きで独立して与えられますx 1x 2yバツバツ1バツ2

次に、Borutaは期待される結果を見つけます。

> library(Boruta)
> Boruta(data.frame(x1,x2,x3), y)
Boruta performed 30 iterations in 2.395286 secs.
 2 attributes confirmed important: x1, x2.
 1 attributes confirmed unimportant: x3.

x 2の間には高い相関関係がありますが、ボルタはそれを気にしません。バツ1バツ2

> cor(x1,x2)
[1] 0.896883

7

それはアルゴリズムの性質にあります。強い相関がある2つの意味のある特徴X 2があると仮定します。バツ1バツ2

ペーパーhttp://arxiv.org/abs/1106.5112(ランダムフォレストを使用するすべての関連機能の選択、Miron B. Kursa、Witold R. Rudnicki)から、ボルタアルゴリズムの簡単な説明を取得できます。

「この問題に対処するために、重要な属性を選択するための基準を提供するアルゴリズムを開発しました。アルゴリズムはランダムフォレストの精神から生まれました。システムにランダム性を追加することで問題に対処しています。本質的なアイデアは非常にシンプルです。システムのランダム化されたコピーを作成し、コピーを元のシステムとマージして、この拡張システムの分類子を構築します。元のシステムの変数の重要性を評価するために、ランダム化された変数のそれと比較します。重要度がより高い変数のみランダム化された変数よりも重要であると考えられています。」

基本的に、Borutaアルゴリズムは、元の機能とランダム化された機能のセットでランダムフォレストをトレーニングします。トレーニング中のこのランダムフォレストは、すべてのランダムフォレストと同様に、すべてのノードのすべての機能のサブセットのみを認識します。したがって、現在のノードの変数を選択するときに、X 2のどちらかを選択できない場合があり、2つの変数X 1X 2のどちらか一方を優先することはできません。バツ1バツ2バツ1バツ2

バツ1バツ2バツ1バツ2バツ^1バツ^2バツ1バツ^2バツ1バツ2ために拒否された X 2は、より高い重要性を持つ X 2バツ2バツ^2バツ2


与えられたフィーチャーからランダムなフィーチャーを作成しますか
Milan Amrut Joshi

あなたは、Python / pandas.DataFramesに精通している場合は、ここで解決策を見つけることができます。stackoverflow.com/questions/15772009/...
MaxBenChrist

3

はい、それは正常です。Borutaアルゴリズムは、分類子に値のない属性を破棄し、「関連性のある」属性のセットを残します。これには、相関する属性が含まれる場合があります。「最小-最適」セット(相関を含むべきではない)と比較してください。

では、なぜこの方法を特徴選択に使用する必要があるのでしょうか。元の論文からのこの引用は役に立つかもしれません:

非冗長属性だけでなく、関連するすべての属性を見つけることは、それ自体が非常に役立ちます。特に、これは、ブラックボックス予測モデルを単に構築するのではなく、関心のある主題に関連するメカニズムを理解することに関心がある場合に必要です。

たとえば、がんに関連して遺伝子発現測定の結果を扱う場合、プロセスに完全に理解するには、がんに関連するすべての遺伝子を特定する必要がありますが、遺伝子の最小最適セットは、遺伝子マーカーとしてより有用かもしれません。

したがって、主な目的が予測変数と結果の間の因果関係を理解することである場合、変数の最適なセットのみを検討すると、混乱する可能性があり、すべての関連セットを研究する必要があります。

ただし、求めるものがフィットするのに効率的なモデルである場合は、最小限の最適セットを使用する方がよいでしょう。

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