問題タブ [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.
r - Rで木を剪定するには?
R で rpart を使用して分類を行っています。ツリー モデルは次の方法でトレーニングされます。
このツリー モデルの精度は次のとおりです。
クロス検証によってツリーを剪定するチュートリアルを読みました。
剪定された木の正解率は同じです。
剪定した木のどこが悪いのか知りたいですか?また、R でクロス検証を使用してツリー モデルをプルーニングするにはどうすればよいでしょうか? ありがとう。
r - 「rpart」で連続変数と離散変数を処理する方法-Rを使用した決定木?
R のパッケージrpartを使用していくつかの決定木を作成しています。データセットには年齢、子供の数などの離散変数があります。しかし、結果のディシジョン ツリーには、これらの変数が 10 進数 n 個あります。つまり、連続変数と見なされます。
これを回避する方法と、デシジョン ツリーでこれらの変数を個別に取得するにはどうすればよいですか?
r - R の rpart パッケージ - 各リーフ ノードの行数 ('n = ###') のラベルが正しくない決定木
R の rpart パッケージを使用して、「myData」というデータ フレームから決定木モデルを作成しています。85,590 行あります。
デシジョン ツリーは、次のようなコードを使用して作成されます (重要な部分は「data = myData」です)。
decTree <- rpart(結果 ~ var1 + var2 + ..., data = myData, method = "anova", control = rpart.control(minsplit=30))
このディシジョン ツリーの「リーフ」(ターミナル) ノードをプロットしてラベルを付けると、最初のノードの「左側」に 66,667、右側に 18,923 の初期分割が得られます (行の合計数である 85,590 に追加されます)。 、 予想通り。)
plot(decTree) # 木を描く
text(decTree, use.n = TRUE) #ツリーにラベルを付ける
この最初の分割を作成するルールは、var1 < 1.5 です。
しかし、var1 が < 1.5 である myData の行数を数えると、予想される 85,590 ではなく 79,518 になります (そして、var1 >= 1.5 の行を数えると、ツリーに表示されるのは 18,923 と予想されます。)
長さ (どの (myData$var1 < 1.5))
[1] 79518
この動作を自分で再現することは不可能であることは承知しています (以前の rpart モデルはノード数に関しては正しく機能していたので、今回問題が発生した理由はわかりません)。誰かが以前にこの問題を抱えていたことを願っています。そうでなければ、私のコードにばかげたエラーを見つけました...
私はそれをすべて再実行しようとしましたが、それでもすべて同じ(不一致の)リーフカウント数を取得しました。
また、myData$frame を確認しましたが、間違っているのは「n = ...」ラベルだけではありません。$frame の値は、プロットに表示されているものと一致します (私が自分で行ったカウントとは一致しません)。
decTree$frame
最後に、「var1」値はどれも NA ではありません。すなわち:
length(which(is.na(myData$var1)))
[1] 0
r - Rpart - NA 処理
Rpart パッケージの NA 機能に苦労しています。次のデータフレームを取得しました(以下のコード)
完全な予測を行う Rpart オブジェクトを当てはめようとしています。論理的なルールは、次のことを予測することです。
- VarA=1 の場合、予測=1
- VarA=0 の場合、予測=0
- VarA=NA の場合、VarB が使用されます (VarB=0 の場合、予測=0)
ただし、正しい方法で VarA の「NA 値を渡す」ための正しいコードを見つけるのに苦労しています。と を使用しようとしましusesurrogates
たna.control
が、役に立ちませんでした...以下のコードを見つけてください。
PS。VarAが読み取る場合、rpartは機能しますVarA=c(1,1,2,0,0,2)
が、残念ながら、これは私が取り組んでいるより大きなデータフレームの優れたソリューションではありません....
r - R の出力を解釈する Rpart 分類木代理分割
この分割では、bmi 値が 21.51 未満であることに基づいてケースが適切な子ノードに送信され、主要な変数 (同意 = 0.858) と同様の分割が行われ、ノードの不純物が適切に減少する (adj=0.632) ことを理解しています。
出力の (0 分割) 部分がわかりませんか? また、一致の値が 1 の場合、これは疑わしいでしょうか?
ありがとう!
r - RPART 出力の識別レベル
感度、カテゴリ、範囲、期間の 4 つのグループがあります。これらの 4 つのそれぞれに 4 つのレベルがあります。感度 - A、B、C、D カテゴリー - 1、2、3、4 範囲 - サイト、ローカル、地域、汎地域 期間 - 短期、中期、長期、不可逆的
これらの組み合わせ (合計 256 あります) を使用して重大度の分類を取得します。S1、S2、S3、S4、S5、S6、N の 7 つの重大度クラスがあります。
RPART を使用して、最初のバイナリ ブレークとして Duration=cd を持つツリーを取得します。次に、ツリーの左側にある次のものは Sensitivity=ab です。デュレーション レベル c と d を知るにはどうすればよいですか? また、感度レベル a と b をどのように知ることができますか?
ありがとう!
r - mvpart と rpart でのルールの分割
いくつかの変数に基づいて 1 つの鳥種の有無を予測する分類木を作成したいと考えています。rpart が単変量パーティショニングを処理し、mvpart が多変量パーティショニングを処理することは知っていますが、出力がより柔軟であるため、1 変数ツリーには mvpart を使用したいと考えています。私がこれをしてはいけない理由を知っている人はいますか?分割は、rpart と mvpart でまったく同じ入力で異なりますか?