rpartはデフォルトで多変量分割を使用しますか?


8

Rのrpart関数が多変量分割を実装するために必要なデータを保持することは知っていますが、実際に多変量分割を実行しているかどうかはわかりません。私はrpartドキュメントを見てオンラインで調べてみましたが、それを実行できる、または実行しているという情報はありません。誰もが確かに知っていますか?


多変量分割とはどういう意味ですか?多変量テストどの属性を分割に使用するか、いくつかの属性の関数に基づいて分割するか?

これは、複数の変数を使用する分割です。幾何学的にこれは、軸の1つに垂直な平面ではなく、超平面に沿った分割を意味します。
chubbsondubs 2010年

回答:


13

Rpartは一変量分割のみを提供します。私は、あなたの質問に基づいて、単変量分割法と多変量分割法の違いに完全には精通していないと思います。私はこれを以下で説明するために最善を尽くし、さらに研究のためのいくつかの参照を提供し、これらの方法を実装するためのいくつかのRパッケージを提案しました。

Rpartは、再帰的なパーティション分割を使用するツリーベースの分類子です。分割方法では、分割が行われるデータ内のポイントを定義する必要があります。Rのrpartアルゴリズムは、RSSを最適に分割する(したがって削減する)変数とポイントを見つけることでこれを行います。分割は一度に1つの変数でのみ発生するため、これらは一変量分割です。多変量分割は通常、複数の軸に沿った同時分割(したがって多変量)として定義されます。つまり、最初のrpartノードはAge> 35に沿って分割され、2番目のノードは所得> 25,000に沿って分割され、3番目のノードは西の都市に沿って分割されます。ミシシッピ。2番目と3番目のノードは、データ全体の小さなサブセットで分割されるため、2番目のノードでは、収入基準は35歳以上の人のみのRSSを最適に分割します。このノードにない観測には適用されません。Cities基準にも同じことが適用されます。データセット内の各観測にノードが存在するまでこれを続けることができます(rpartは最小ノードサイズ基準に加えて最小バケットサイズ関数を使用し、最小二乗値はr二乗値を増加させるために増加する必要がありますフィッティングを続行します)。

患者規則誘導法(Rのプリムパッケージ)などの多変量法は、たとえば、収入が22,000より大きく、年齢が32を超えるすべての観測値、およびアトランタの西部の都市を選択することで同時に分割されます。近似が異なる場合がある理由は、近似の計算が単変量ではなく多変量であるためです。これら3つの基準の近似は、これらの基準を満たすすべての観測値に対する3つの変数の同時近似に基づいて計算されます。単変量分割(rpartと同様)。

単変量分割法と多変量分割法の有効性に関しては、さまざまな考えがあります。一般的に私が実際に見たのは、ほとんどの人が説明のために単変量分割(rpartなど)を好むということです(構造が非常に明確に定義されており、変数間のばらつきがかなり大きい問題を処理する場合にのみ使用されます)定数、これはこれらがしばしば医学で使用される理由です)。単変量ツリーモデルは通常、予測に使用される場合(つまり、ランダムフォレスト)、アンサンブル学習器と組み合わされます。多変量パーティショニングまたはクラスタリング(多変量パーティショニングと非常に密接に関連しています)を使用する人々は、単変量メソッドの適合性が非常に低い複雑な問題によく使用し、主に予測、または観測値をカテゴリにグループ化します。

Julian Farawayの著書「Rによる線形モデルの拡張」を強くお勧めします。第13章は、すべてツリー(すべて単変量)の使用に特化しています。多変量メソッドにさらに興味がある場合は、Hastie et。alは、PRIM(スタンフォードのフリードマンが彼のWebサイトに投稿されたメソッドに関する彼のオリジナルの記事を持っていますが)やクラスタリングメソッドなど、多くの多変量メソッドの優れた概要を提供しています。

これらの方法を利用するためのRパッケージに関しては、すでにrpartパッケージを使用していると思います。また、上記のprimパッケージについて述べました。さまざまな組み込みのクラスタリングルーチンがあり、ディシジョンツリーの構築プロセスで条件付き推論を実装しているため、このスレッドで別の人が言及したパーティーパッケージはとても気に入っています。optpartパッケージを使用すると、多変量パーティション分割を実行でき、mvpartパッケージ(他のユーザーも言及)を使用すると、多変量rpartツリーを実行できますが、私は、partDSAを使用することを好みます。観察結果。rpartとpartyが私のモデリング目的に適していないと感じた場合。

注:段落2のrpartツリーの例では、パーティションがノード番号でどのように機能するかを説明します。このツリーを描画すると、分割のルールがtrueの場合、パーティションは左側に進みますが、RIではルールが真の場合、分割は実際に右に進むと考えています。


アダム素晴らしい答え。それはまさに私が求めていたものです。しかし、あなたは私がより多くの情報を見つけるのに苦労したちょっとした情報を追加しました。MallowのCP停止基準。私はRのソースコードを調べましたが、彼らがどのように停止することを選択しているかを理解するのは難しすぎます。おおよそのアイデアはありますが、実装を完了するには、その仕組みについての論文または議論が必要です。何か情報はありますか?
chubbsondubs 2010

そこで、rpartのリファレンスマニュアルを確認したところ、どうやら間違っていたようです。rpartで停止するための基準の1つは「cp」と呼ばれますが、これは「複雑性パラメーター」の略であり、特定の分割を実行するためにr ^ 2を増やす必要がある最小量にすぎません。これを反映するために上記の投稿を修正しました。分割ルールに統計テストがないことは、rpartパッケージよりもパーティーパッケージを使用する理由の1つです。パーティーパッケージを使用すると、デフォルトの方法では、停止基準としてBonferroniで修正されたp値が実装されます(デフォルトはp = 0.05)。詳細については、ビネットを参照してください。
Adam

rpartが停止基準を使用しないという事実は、負債ではなく資産であると感じています。分割は価値がないように見えるかもしれませんが、ツリーのさらに下の後続の分割への道を開いていますが、これは非常に重要です。rpartに実装されている「大きくしてから取り除く」ポリシーは、早期停止を回避し、私には賢明なアプローチのようです。
F. Tusell 2010

CARTの調査の背後にある全体的な考えである@Tusellは、停止基準の選択は最適ではないということです。完全なツリーを成長させ、プルーニングを使用して最適なツリーを見つけます。ただし、@ Adamが指摘したように、rpartはそのようには機能しません。その一部は、大規模なデータセットの最適化だと思います。探索せずに早期にサブツリーを切り落とすことができれば、完全な展開とプルーニングセッションを実行するよりもはるかに多くのCPU時間を節約できます。ただし、指摘したように、一部のツリーは完全に探索されておらず、cpパラメーターを微調整して機能させる必要があります。
chubbsondubs 2010

@AdamはテストデータセットからR ^ 2を計算していますか、それともプルーニングセットを使用してMSEを計算していますか?
chubbsondubs 2010

1

私の知る限り、そうではありません。しばらく使用していません。私があなたをよく理解しているなら、代わりにパッケージmvpartを見たいかもしれません。


1

用語が混乱しています。複数の変数を使用した分割、または多変量(単変量ではなく)の応答を可能にするツリーを使用するという意味ですか?後者だと思います。

F. Tusellがmvpartパッケージを紹介しました。これは、ツリー構築の各段階で可能なすべての分割について評価されるノード不純物の多変量基準を追加します。

別の方法は、多変量応答を処理できる関数を持つパーティーパッケージctree()です。


実際、私は複数の変数を使用した分割について言及しています。Leo BreimanのCARTの本を読んだ場合、1つの変数のみが考慮される単変量ではなく、多変量分割と呼ばれます。答えてくれてありがとう。
chubbsondubs 2010年

1
すべての変数はで考慮rpartされます。バイナリ分割は、すべての変数と各変数内のすべての可能な分割位置を検索することによって形成されます。rpartまた、変数に欠落データがある場合に使用できるサロゲート分割に関する情報も格納します。これは役に立ちますか?
Gavin Simpson

2つ以上の変数のいくつかの組み合わせである分割を意味する場合、rpartその場合は処理されません。
Gavin Simpson、

1

CARTブックで定義されている多変量分割は、では実装されていませんrpart。Salford SystemsのCARTソフトウェアパッケージにはこの機能がありますが、AFAIKはBreiman、Friedmanなどからライセンスされた独自のアルゴリズムを使用しています。

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