最後のノードのボリュームの代わりに、各ノードにボリュームを追加する方法を教えてください。
t <- ctree(is_return ~ a + b + c)
plot(t, type="simple")
私のツリーは次のようになります
黒または最終ノードだけでなく、すべての円ノードで N= を表示するプロットをどのように変更できますか。
ありがとう
最後のノードのボリュームの代わりに、各ノードにボリュームを追加する方法を教えてください。
t <- ctree(is_return ~ a + b + c)
plot(t, type="simple")
私のツリーは次のようになります
黒または最終ノードだけでなく、すべての円ノードで N= を表示するプロットをどのように変更できますか。
ありがとう
アイデアは、内部ノードをプロットするためのパネル関数を指定することです。
いくつかのデータとツリーを生成します
lls <- data.frame(N = gl(3, 50, labels = c("A", "B", "C")),
a = rnorm(150) + rep(c(1, 0,150)),
b = runif(150))
pond= sample(1:5,150,replace=TRUE)
tt <- ctree(formula=N~a+b, data=lls,weights = pond)
カスタム内部プロット関数。いくつかの重みを書く円を描きます。
innerWeights <- function(node){
grid.circle(gp = gpar(fill = "White", col = 1))
mainlab <- paste( node$psplit$variableName, "\n(n = ")
mainlab <- paste(mainlab, sum(node$weights),")" , sep = "")
grid.text(mainlab,gp = gpar(col='red'))
}
木をプロットします
plot(tt, type='simple', inner_panel = innerWeights)
PS:結果はランダムに生成されたデータに依存するため、おそらく同じプロットは得られません。
デシジョン ツリーをエクスポートするときは、画像のサイズを変更します。200 個のターミナル ノードを持つ決定木の場合、幅は約 30.000 になります。