Интерпретация randomForest в R с использованием пакета iml и для циклов - PullRequest
0 голосов
/ 29 ноября 2018

Я использую пакет iml для извлечения корректных значений случайного классификатора леса - набор данных содержит лиц, которые либо активно участвуют в событии, и их демографические переменные.Я хочу понять причины, лежащие в основе предсказаний алгоритма случайного леса, и принял решение об использовании значений Shapely.Вот мой код:

    dataset$Active = as.factor(dataset$Active)
    rf <- randomForest(Active ~ ., data = dataset, ntree = 50)

    #Understanding the shapely values for each individual using the iml package
    X <- dataset[,-11] 
    predictor = Predictor$new(rf, data = X, y = dataset$Active)

Затем я запускаю цикл for, чтобы извлечь каждое значение из предиктора:

iterations = 16721
variables = 15

output <- matrix(ncol=variables, nrow=iterations)

for (i in 1:16721){
  shapley = Shapley$new(predictor, x.interest = X[i,])
  output[i,] = head(results$phi,n=15)
}

Однако я сталкиваюсь с двумя проблемами: 1)Цикл for занимает очень много времени и непрактичен в долгосрочной перспективе - возможно ли использовать параллельные процессы / облачные ресурсы для этих вычислений?2) Каждый раз, когда я запускаю

shapley = Shapley$new(predictor, x.interest = X[1,])
shapley$plot()

, мне удается получать разные графики (значения shapley), хотя я смотрю на одну и ту же строку данных.

Я не привязан к Shapely v.Известь прямо сейчас.Спасибо за вашу помощь!

...