ランダムフォレストモデルに交互作用項を含める方法


9

randomForestRのrandomForestパッケージの関数を使用して回帰を行っています。ただし、次のコードに相互作用用語を含めようとすると、

library(MASS)
library(randomForest)
Boston_f <- within(Boston, factor(rad))
mdl <- randomForest(lstat ~ rad * . , data = Boston_f)

結果にmdl$termは相互作用が含まれますが、mdl使用しているツリーをのぞくと、

getTree(mdl, 1, T)

相互作用項を使用して分割変数を見つけることができません。

誰かが相互作用の用語を使用しrandomForestたり、他の関数を含める方法を知っていますか?


1
この質問はRコードについて尋ねていますが、統計/ MLの誤解が動機となっていると思います。これに対処すると、Rコード固有の側面が無効になります。そのため、これはオープンなままにしておく必要があります。
ガン-モニカの回復

ここでは、ソフトウェアの動作に関する質問のみが取り上げられていますが、実際の統計的な質問がここに埋め込まれている場合があります。質問を編集して、根本的な統計上の問題を明確にすることができます。関連する統計的概念を理解すると、ソフトウェア固有の要素が自明であるか、少なくともドキュメントから簡単に取得できることがわかります。
ガン-モニカの回復

回答:


12

ツリーベースのモデルは変数を順番に検討するため、変数を指定せずに相互作用を検討するのに便利です。予測に役立つインタラクションは、十分に大きなフォレストで簡単に取得できるため、明示的なインタラクション項を含める必要はありません。

相互作用が重要であると思われる場合は、相互作用項を手動で作成できます(たとえば、関数formula内にを定義するmodel.frameと、相互作用項の新しい列が作成されます)。しかし、あなたのケースではrad、と他のすべての機能との間の相互作用を作成しているため、これは変数の数をほぼ2倍にするので、おそらくお勧めできません。

線形法と比較して相互作用する変数を検出するランダムフォレストの固有の機能を示す、ランダムフォレストに相互作用項を含めるも参照してください。

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