Je veux implémenter LIME sur un modèle créé en utilisant h2o (deep learning) en R. Pour utiliser les données du modèle, j'ai créé h2oFrames et je l'ai converti en dataframe avant de l'utiliser dans LIME (fonction Lime, car la fonction EXPLE de LIME ne peut pas reconnaître un h2oFrame). Ici, je suis en mesure d'exécuter la fonctionImplémentation de LIME sur la modélisation h2o en R
L'étape suivante consiste à utiliser la fonction d'explication sur les données de test pour générer des explications. Ici, R renvoie une erreur pour l'utilisation d'une trame de données ainsi que d'un h2oFrame.
C'est l'erreur générée lors de l'utilisation d'une trame de données:
Error in chk.H2OFrame(x) : must be an H2OFrame
Ceci est l'erreur générée lors de l'utilisation d'un h2oframe:
Error in UseMethod("permute_cases") : no applicable method for 'permute_cases' applied to an object of class "H2OFrame"
if(!require(pacman)) install.packages("pacman")
pacman::p_load(h2o, lime, data.table, e1071)
data(iris)
h2o.init(nthreads = -1)
h2o.no_progress()
# Split up the data set
iris <- as.h2o(iris)
split <- h2o.splitFrame(iris, c(0.6, 0.2), seed = 1234)
iris_train <- h2o.assign(split[[1]], "train") # 60%
iris_valid <- h2o.assign(split[[2]], "valid") # 20%
iris_test <- h2o.assign(split[[3]], "test") # 20%
output <- 'Species'
input <- setdiff(names(iris),output)
model_dl_1 <- h2o.deeplearning(
model_id = "dl_1",
training_frame = iris_train,
validation_frame = iris_valid,
x = input,
y = output,
hidden = c(32, 32, 32),
epochs = 10, # hopefully converges earlier...
score_validation_samples = 10000,
stopping_rounds = 5,
stopping_tolerance = 0.01
)
pred1 <- h2o.predict(model_dl_1, iris_test)
list(dimension = dim(pred1), pred1$predict)
#convert to df from h2ofdataframe
train_org<-as.data.frame(iris_train)
#converting train h2oframe to dataframe
sapply(train_org,class) #checking the class of train_org
test_df <- as.data.frame(iris_test)
#converting test data h2oFrame to dataframe
test_sample <- test_df[1:1,]
#works
#lime is used to get explain on the train data
explain <- lime(train_org, model_dl_1, bin_continuous = FALSE, n_bins =
5, n_permutations = 1000)
# Explain new observation
explanation <- explain(test_sample, n_labels = 1, n_features = 1)
h2o.shutdown(prompt=F)
Can quelqu'un plaide se me aider à trouver une solution ou un moyen d'utiliser l'expliquer en fonction de CHAUX avec la trame de données appropriée
Veuillez fournir un exemple de code entièrement reproductible ainsi que des informations de version sur les paquets de chaux et de H2O R. –
Vous devez mettre à jour le code dans votre message afin qu'il soit reproductible - il peut s'agir d'un ensemble de données (iris serait bien). Veuillez consulter les directives de débordement de pile à propos de MCVE ici: https://stackoverflow.com/help/mcve Si je ne peux pas copier/coller votre code pour vous aider à déboguer le code, alors ce n'est pas un MCVE. –
@ErinLeDell, merci pour les commentaires, je vais faire les changements. – gattaca