【发布时间】:2019-06-19 20:04:36
【问题描述】:
因此,当在 R 中使用 randomForestExplainer 包的最小深度交互功能时,我会得到一些难以解释的结果。
我模拟了一些数据 (x1, x2,..., x5),其中 x1 是二进制的,x2-x5 是连续的。在我的模型中,没有交互。
我使用 randomForest 包创建一个随机森林,然后通过 randomForestExplainer 包运行它。
这是我用来模拟数据和随机森林的代码:
library(randomForest)
library(randomForestExplainer)
n <- 100
p <- 4
# Create data:
xrandom <- matrix(rnorm(n*p)+5, nrow=n)
colnames(xrandom)<- paste0("x",2:5)
d <- data.frame(xrandom)
d$x1 <- factor(sample(1:2, n, replace=T))
# Equation:
y <- d$x2 + rnorm(n)/5
y[d$x1==1] <- y[d$x1==1]+5
d$y <- y
# Random Forest:
fr <- randomForest(y ~ ., data=d,localImp=T)
# Random Forest Explainer:
interactions_frame <- min_depth_interactions(fr, names(d)[-6])
head(interactions_frame, 2)
这会产生以下内容:
variable root_variable mean_min_depth occurrences interaction
1 x1 x1 4.670732 0 x1:x1
2 x1 x2 2.606190 221 x2:x1
uncond_mean_min_depth
1 1.703252
2 1.703252
所以,我的问题是,如果 x1:x1 出现 0 次(这是预期的),那么它怎么会有 mean_min_depth? 当然,如果它有 0 次出现,那么它不可能有最小深度吗? [或者更确切地说,最小深度 = 0 或 NA]
这里发生了什么?我是不是误解了什么?
谢谢
【问题讨论】:
标签: r random-forest interaction