Ответ 1
AFAIS, чем более мощный метод машинного обучения, тем сложнее объяснить, что происходит под ним.
Преимущества метода GBM
(как вы уже упоминали) также затрудняют понимание модели. Это особенно верно для числовых varialbes, когда модель GBM
может использовать диапазоны значений по-разному, а некоторые могут иметь положительные воздействия, тогда как другие имеют отрицательные эффекты.
Для GLM
, когда нет указанного взаимодействия, числовая переменная будет монотонной, поэтому вы можете испытать положительное или отрицательное воздействие.
Теперь, когда общее представление затруднено, есть ли какой-либо метод, который мы можем проанализировать модель? Есть два метода, с которыми мы можем начать:
График частичной зависимости
h2o
предоставляет h2o.partialplot
, который дает частичный (т.е. маргинальный) эффект для каждой переменной, который можно рассматривать как эффект:
library(h2o)
h2o.init()
prostate.path <- system.file("extdata", "prostate.csv", package="h2o")
prostate.hex <- h2o.uploadFile(path = prostate.path, destination_frame = "prostate.hex")
prostate.hex[, "CAPSULE"] <- as.factor(prostate.hex[, "CAPSULE"] )
prostate.hex[, "RACE"] <- as.factor(prostate.hex[,"RACE"] )
prostate.gbm <- h2o.gbm(x = c("AGE","RACE"),
y = "CAPSULE",
training_frame = prostate.hex,
ntrees = 10,
max_depth = 5,
learn_rate = 0.1)
h2o.partialPlot(object = prostate.gbm, data = prostate.hex, cols = "AGE")
Индивидуальный анализатор
LIME
package [https://github.com/thomasp85/lime] предоставляет возможность проверять вклад переменных для каждого из наблюдений. К счастью, этот пакет r уже поддерживает h2o
.