マルチレベル/階層構造データのランダムフォレスト


13

私は機械学習やCART技術などは初めてであり、私の素朴さがあまり明白ではないことを願っています。

ランダムフォレストは、マルチレベル/階層データ構造をどのように処理しますか(たとえば、クロスレベルの相互作用が重要な場合)。

つまり、いくつかの階層レベルでの分析の単位を含むデータセット(たとえば、学生と学校の両方に関するデータを含む、学校内にネストされた学生)。

単なる例として、第1レベルの個人(たとえば、投票行動、人口統計などのデータ)が第2レベル(国レベルのデータ、たとえば人口)の国にネストされたマルチレベルデータセットを考えます。

ID voted age female country population
1 1 19 1 1 53.01
2 1 23 0 1 53.01
3 0 43 1 1 53.01
4 1 27 1 1 53.01
5 0 67 0 1 53.01
6 1 34 1 2 47.54
7 0 54 1 2 47.54
8 0 22 1 2 47.54
9 0 78 0 2 47.54
10 1 52 0 2 47.54

それvotedが応答/従属変数であり、他が予測変数/独立変数であるとしましょう。例、マージンといくつかのより高いレベルの変数の変数(部分的依存性)の限界効果(これらのタイプでは例えばpopulation異なる個々のレベルの変数などのため)、非常に興味深い可能性があります。これに似たケースでglmは、もちろんより適切ですが、多くの変数、相互作用および/または欠損値、および/または非常に大規模なデータセットなどglmがある場合、それほど信頼できません。

サブ質問:ランダムフォレストは何らかの方法でこのタイプのデータ構造を明示的に処理できますか?関係なく使用すると、どのようなバイアスが導入されますか?ランダムフォレストが適切でない場合、他にアンサンブルタイプの方法はありますか?

グループ化されたデータのランダムフォレストの質問はおそらく似ていますが、実際にはこれに答えていません。)


こんにちは、@ MikaelAndersson、あなたが提起した質問に対する解決策を見つけましたか?私は同様の状況に直面しており、あなたの経験を聞きたいと思っています。ありがとう。
NoviceProg

回答:


4

ランダムフォレストは正常に機能しますが、ハイパーパラメーターを調整するときは特に注意する必要があります(特に、一般化パフォーマンスの現実的な測定が必要な場合)。従来のOOBエラー推定値は、データに「ツイン」が横行しているため、楽観的になります。

適切なチューニングと一般化の見積もりを得るには、遭遇することが予想される新しいデータの特性を理解する必要があります。新しい国に外挿する場合は、国ごとに層別サンプリングを行う再サンプルベースのチューニング(k倍交差検証など)を設定する必要があります。

また、データをランダムフォレストにエンコードする方法にも注意する必要があります。その表示されたcountryカテゴリ変数です。数値として入力するのは少し大雑把ですが、絶望的ではありません(特に有用なIDを注文した場合)。


OOBエラーの推定値が楽観的すぎる理由について少し説明していただけますか?
dmartin

2
彼らの楽観主義は、新しいデータがどのように見えるかによって決まると思います。新しいデータが他の郡から送られてきた場合、このランダムフォレストは、OOBエラーが示すほどには機能しない可能性があります。これは、たとえば同じ郡のセットのサンプルからOOBエラーがまだ発生しているためです。
シアパークス14年

3

私は実際に、事前定義されたクラス階層に沿ってrandomForestをローカル分類子として実行するRパッケージに取り組んでいます。パッケージはR Forgeの「hie-ran-forest」の下にあります。パッケージはすでに動作していますが、cranテスト(MAC用)の1つに失敗していますが、正確な理由はわかりません。階層の各親ノードでrandomForestを実際に実行することに加えて、パッケージには予測関数とパフォーマンス関数も含まれています。パフォーマンス測定の1つは、実際に階層クラス構造を説明します。

パッケージは、最初にクラス階層の各親ノードでローカルクラシファイアとしてランダムフォレストを実行することにより、クロスレベルの相互作用に対処します。次に、予測関数は、各ケースが各ローカル分類子で受け取ったout of bag投票の割合を取得します。次に、投票の割合を鮮明な分類に変える2つの方法があります。1.段階的な多数決ルール-ツリールートに最も近いローカル分類子から始め、投票の割合が最も高いこの分類子を選択します。次に、選択したノードのすべての子を見て、関連するローカル分類子で投票の割合が最も高い子を再度選択します。ターミナルノードに到達するまで続行します。2。

倍数の票の割合は、通常のrandomForestによって生成された票の割合に匹敵します


2
パッケージが「クロスレベルインタラクション」に対応していることを明確にできますか?パッケージが存在すると言うだけでは答えになりません(ここではあまり重要ではありませんが、CVは高品質のML情報の永続的なリポジトリを構築しようとしていますが、パッケージが存在するという事実はありませんかなりその基準を満たしています。)
グング-モニカ

ここで作成するすべての投稿には、ユーザーページへのリンクを含むユーザー名が自動的に添付されます。したがって、投稿に署名する必要はありません。実際、署名しないことをお勧めします。他の人に連絡してもらいたい場合は、ユーザーページにメソッド(メールアドレスなど)を投稿できます。
GUNG -復活モニカ

@YoniGavishに感謝します。回答を編集して、その情報を追加してみませんか?
GUNG -復活モニカ

@gungの方がいいですか?
ヨニガビッシュ

ええ、それでうまくいきます、@ YoniGavish、+ 1。サイトへようこそ。
gung-モニカの回復

3

単一の分類ツリーでは、これらのグループは他のカテゴリ変数と同じようにコーディングされます。これは多くの場合、バイナリコーディングまたは単に整数を使用して行われます。いずれかを使用するためのさまざまな引数があります。ランダムフォレストでは、バイナリコーディングを使用している場合、特定のツリーに含まれるグループまたは除外されるグループがあります。そのため、インジケータはあるcountry_2が、ない場合がありcountry_3ます。グループ変数を整数のままにしておくと、順序が結果にも影響する可能性があります。それは何の意味があるcountry > 5country < 12?ランダムに国に新しい整数のラベルを付け直した場合、それはどのように変わりますか?

ツリーを成長させる各ステップで、アルゴリズムは基準を最適化する分割を探します。グループ間に大きな違いがある場合、グループ化変数が重要になりますが、それがそれほど重要ではなく、ツリーを剪定する場合、変数は本質的に除外されます。

他のほとんどの機械学習アルゴリズムと同様に、CARTとランダムフォレストは、グループ内の観測間の依存関係を必ずしも階層回帰モデルで期待する方法で説明するわけではありません。そこにいる場合である観測間の依存関係は、それがグループ化変数を使用する多くの木々の世代を通じてランダムフォレストアルゴリズムによって捕獲されなければなりません。ただし、他の変数がより大きな差別を示す場合、グループ化変数は無視される場合があります。

あなたの場合、countryそしてpopulation完全に共線的です。モデルで両方の変数を使用しても得られる情報はありません。したがって、ランダムフォレストモデルがデータ内のこれらの変数をどのように扱うかを考えることができます。

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