Так что при использовании функции взаимодействия с минимальной глубиной пакета randomForestExplainer в R у меня возникают некоторые трудности с интерпретацией результатов.
Я смоделировал некоторые данные (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]
Что здесь происходит? Я что-то неправильно понимаю?
Спасибо