计算 rpart 中的叶数
compute numbers of leaf in rpart
我使用 rpart 运行 回归树
library(MASS)
N = 1000
episolon = rnorm(N, 0, 0.01)
x1 = rnorm(N, 0, sd=1)
x2 = rnorm(N, 0, sd=1)
eta_x = 1/2*x1+x2
Kappa_x = 1/2*x1
w = rbinom(N, 1, 0.5)
treatment = w
makeY = function(eta, Kappa){
Y = eta+1/2*(2*w-1)*Kappa+episolon
}
Y1 = makeY(eta_x, Kappa_x)
fit = rpart(Y1 ~ x1 + x2)
plot(fit)
text(fit)
中的叶数
我想要一个函数来告诉我这棵树有 12 片叶子
fit
对象具有您需要的所有信息。您可以使用 str(fit)
检查它。
求叶子数的两种方法是:
sum(fit$frame$ncompete == 0)
[1] 11
和
sum(fit$frame$var == "<leaf>")
[1] 11
我使用 rpart 运行 回归树
library(MASS)
N = 1000
episolon = rnorm(N, 0, 0.01)
x1 = rnorm(N, 0, sd=1)
x2 = rnorm(N, 0, sd=1)
eta_x = 1/2*x1+x2
Kappa_x = 1/2*x1
w = rbinom(N, 1, 0.5)
treatment = w
makeY = function(eta, Kappa){
Y = eta+1/2*(2*w-1)*Kappa+episolon
}
Y1 = makeY(eta_x, Kappa_x)
fit = rpart(Y1 ~ x1 + x2)
plot(fit)
text(fit)
中的叶数
我想要一个函数来告诉我这棵树有 12 片叶子
fit
对象具有您需要的所有信息。您可以使用 str(fit)
检查它。
求叶子数的两种方法是:
sum(fit$frame$ncompete == 0)
[1] 11
和
sum(fit$frame$var == "<leaf>")
[1] 11