回答:
...、2つ(選択した20変数のうち)は高度に相関しており、他の2つは完全に相関しています。これは正常ですか?Borutaメソッドは、2つのうちの1つを重要でないと分類すべきではありませんか?
はい、それは正常です。Borutaは、応答変数関連するすべての特徴を見つける傾向があります。厳密に言えば、予測変数はxは私がに関連するといわれているyの場合、xは、私とyは(単にそれが意味するだろうか、与えられた何も、他のいくつかの予測変数与えられた条件付きで独立していないxはIおよび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 + ノイズであり、yはx 2から独立していないこともわかります。yに関連しない唯一の変数はx 3です。
次に、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の間には高い相関関係がありますが、ボルタはそれを気にしません。
> cor(x1,x2)
[1] 0.896883
それはアルゴリズムの性質にあります。強い相関がある2つの意味のある特徴とX 2があると仮定します。
ペーパーhttp://arxiv.org/abs/1106.5112(ランダムフォレストを使用するすべての関連機能の選択、Miron B. Kursa、Witold R. Rudnicki)から、ボルタアルゴリズムの簡単な説明を取得できます。
「この問題に対処するために、重要な属性を選択するための基準を提供するアルゴリズムを開発しました。アルゴリズムはランダムフォレストの精神から生まれました。システムにランダム性を追加することで問題に対処しています。本質的なアイデアは非常にシンプルです。システムのランダム化されたコピーを作成し、コピーを元のシステムとマージして、この拡張システムの分類子を構築します。元のシステムの変数の重要性を評価するために、ランダム化された変数のそれと比較します。重要度がより高い変数のみランダム化された変数よりも重要であると考えられています。」
基本的に、Borutaアルゴリズムは、元の機能とランダム化された機能のセットでランダムフォレストをトレーニングします。トレーニング中のこのランダムフォレストは、すべてのランダムフォレストと同様に、すべてのノードのすべての機能のサブセットのみを認識します。したがって、現在のノードの変数を選択するときに、とX 2のどちらかを選択できない場合があり、2つの変数X 1とX 2のどちらか一方を優先することはできません。
ために拒否された X 2は、より高い重要性を持つ X 2)
はい、それは正常です。Borutaアルゴリズムは、分類子に値のない属性を破棄し、「関連性のある」属性のセットを残します。これには、相関する属性が含まれる場合があります。「最小-最適」セット(相関を含むべきではない)と比較してください。
では、なぜこの方法を特徴選択に使用する必要があるのでしょうか。元の論文からのこの引用は役に立つかもしれません:
非冗長属性だけでなく、関連するすべての属性を見つけることは、それ自体が非常に役立ちます。特に、これは、ブラックボックス予測モデルを単に構築するのではなく、関心のある主題に関連するメカニズムを理解することに関心がある場合に必要です。
たとえば、がんに関連して遺伝子発現測定の結果を扱う場合、プロセスに完全に理解するには、がんに関連するすべての遺伝子を特定する必要がありますが、遺伝子の最小最適セットは、遺伝子マーカーとしてより有用かもしれません。
したがって、主な目的が予測変数と結果の間の因果関係を理解することである場合、変数の最適なセットのみを検討すると、混乱する可能性があり、すべての関連セットを研究する必要があります。
ただし、求めるものがフィットするのに効率的なモデルである場合は、最小限の最適セットを使用する方がよいでしょう。