問題タブ [rpart]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
60985 参照

r - デシジョンツリーからエラー率を計算する方法は?

Rを使用して決定木のエラー率を計算する方法を知っている人はいますか?関数を使用していrpart()ます。

0 投票する
1 に答える
2935 参照

r - rpartノードの割り当て

rpart適合ツリーのノード割り当てを抽出することは可能ですか?モデルを新しいデータに適用する場合はどうなりますか?

アイデアは、データをクラスター化する方法としてノードを使用したいということです。他のパッケージ(SPSSなど)では、予測されたクラス、確率、およびノー​​ド番号を保存して、さらに分析することができます。

Rがどれほど強力であるかを考えると、これには簡単な解決策があると思います。

0 投票する
1 に答える
4563 参照

r - R: 予測因子に 52 を超える水準があり、印刷用に切り捨てられています

こんにちは、R プログラミング言語の初心者です。rpart パッケージを使用して回帰木のコードを 1 つ書きました。私のデータでは、いくつかの独立変数が 100 を超えるレベルを持っています。rpart関数を実行した後、次の警告メッセージが表示されます「予測因子に52レベル以上あり、印刷用に切り捨てられました」&ツリーが非常に奇妙な方法で表示されます。たとえば、ツリーが約 70 の異なるレベルを持つ場所によって分割されているとしますが、ラベルがツリーに表示されると、場所がない場所に「ZZZZZZZZZZZZZZZZ.....」と表示されます。 「ZZZZZZZZ」と呼ばれる

私を助けてください。

前もって感謝します。

0 投票する
3 に答える
4876 参照

r - Rpartパッケージによって生成されたテストルール

ツリーから生成された1つのルールをプログラムでテストしたいと思います。ツリーでは、ルートとリーフ(ターミナルノード)の間のパスは、原則として解釈できます。

Rでは、rpartパッケージを使用して次のことを行うことができます:(この投稿ではiris、例としてのみデータセットを使用します)

この2行modelで、クラスがrpart.objectrpartドキュメント、21ページ)であるという名前のツリーを取得しました。このオブジェクトには多くの情報があり、さまざまなメソッドをサポートしています。特に、オブジェクトにはframe変数(標準的な方法でアクセスできます: model$frame)(idem)とメソッドpath.rpathrpartドキュメント、7ページ)があり、ルートノードから目的のノードへのパスを提供しますnode(働き)

変数のrow.namesframeは、ツリーのノード番号が含まれています。このvar列には、ノード内の分割変数、yval近似値とyval2クラス確率、およびその他の情報が表示されます。

ただし<leaf>var列でマークされているのはターミナルノード(リーフ)のみです。この場合、ノードは2、6、および7です。

上記のようにpath.rpart、ルールを抽出する方法を使用できます(この手法は、 rattleパッケージおよびSharmaクレジットスコアの記事で次のように使用されます。

さらに、モデルは予測値の値を

yvalこの値は、model$frameデータセットの列に対応しています。

ノード番号7(行番号5)のリーフの場合、予測値は次のようになります。

ルールは

したがって、ルールは次のように読み取ることができます

このルールに対して真陽性がいくつあるかをテストできることを知っています(テストデータセットでは、アイリスデータセットを再度使用します)。新しいデータセットを次のようにサブセット化します。

次に混同行列を計算します

(注:テストと同じアイリスデータセットを使用しました)

プログラムでルールを評価するにはどうすればよいですか?次のようにルールから条件を抽出できます

しかし、どうすればここから続けることができますか?subset機能が使えない

前もって感謝します

注: この質問は、わかりやすくするために大幅に編集されています

0 投票する
1 に答える
826 参照

perl - Rrpartで構築された回帰ツリーモデルの抽出

Rのパッケージを使用していくつかの回帰ツリーモデルを構築しましたが、rpartそれらをPerlなどの別の言語に移行する必要があります。

予測関数はR内で正常に機能しますが、各ノードで加重式のようなものを出力する方法はありますか?

0 投票する
1 に答える
2214 参照

r - 二分決定木(CART)の分割とルートノード

回帰ツリーで分割ノードとルート ノードを見つける方法、複数のベクトルから回帰ツリーを作成したので、複数のベクトルのrpart のルート ノードを抽出する必要があります。ファイルには、複数のベクトルAの数値が含まれています。ベクトルには 4,3,6,7,2,4,5 などが含まれ、同様に他の B、C、D、E、F、G、H も含まれます。私の場合)ツリーを作成した後、この入力からの出力として。ありがとうございます。申し訳ありませんが、画像を配置できません:(BCDEFGHF

これが私がこれまでに行ったことです

.........今F(F>=5.5)、フィット (回帰木) とその分割からルート ノードを抽出する必要があります。

0 投票する
1 に答える
2802 参照

r - rpart は自動プルーニングですか?

rpartは自動プルーニングですか?

rpartによって生成される決定木は、自動プルーニングを備えた Oracle Data Mining によって生成されるものよりもはるかに多くのレベルです。

0 投票する
1 に答える
704 参照

r - rpartのデータを作成する

rpartリストの列名を連結して、 ?の式を準備します。

名前(log_data)を連結したかったのは、60個のベクトルの異なるベクトルのリストなのでlog_data、列名をr .....のrpartの式に入れることができる形式で、列名が必要です。rpart(A ~ B + C + D + E ,log_data)ここでは、formula = "A〜B + C + D + E"を文字列全体として抽出したいだけです。ここで、A、B、C、D、Eは、log_dataから抽出する必要のある列名です。リストからツリーを取得するためのより良い方法。
私が試してみました、

エラーが発生する

どこ

列名が長すぎるか、n = 60である可能性があるため、rpartで無限ループになります。

任意の列名を添付できますかcolnames(log_data)<-c(?)、n = 60で簡単に描画できるように、「?」に何を入力すればよいですか。

0 投票する
1 に答える
1643 参照

r - tune() 関数 e1071 / libsvm -rpart でのエラー

チューニングしようとしていますrpart。私はすでにデータをトレーニングと cv セットに分割しています。コンビニエンス関数には、tune.rpartcv セットを指定する方法がないようです。だから私は通常のtune()機能を使用しています。

データセットには 595 個の潜在的な変数があるため、数式を使用して指定したくありません。これを行うと、次のエラーが表示されます

コード:

データは https://docs.google.com/folder/d/0B2_rKFnvrjMAM3FGbnFvZm5laUk/editで入手できます。

0 投票する
2 に答える
1865 参照

r - Rのpredict()関数が予測を与えないのはなぜですか?

私のトレーニング データセットには 40000 行あります。を使用してCARTモデルを適合させた後

fit<-rpart(y~x,method="class")

使おうとしていた

predict(fit,data.frame(new_x),family="response")

エラーメッセージは次のとおりです。

"predicted valueその上、 「実際にトレーニングを使用して値を適合させている」ことを確認しましたx。理由を知っている人はいますか?