Минимальная глубина взаимодействия из пакета randomForestExplainer - PullRequest
0 голосов
/ 19 июня 2019

Так что при использовании функции взаимодействия с минимальной глубиной пакета 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]

Что здесь происходит? Я что-то неправильно понимаю?

Спасибо

...