Tôi muốn triển khai LIME trên mô hình được tạo bằng cách sử dụng h2o (học sâu) trong R. Để sử dụng dữ liệu trong mô hình, tôi đã tạo h2oFrames và chuyển nó trở lại dataframe trước khi sử dụng Hàm LIME (hàm vôi, vì hàm giải thích của LIME không thể nhận ra h2oFrame). Ở đây tôi có thể chạy hàmThực hiện LIME trên mô hình h2o trong R
Bước tiếp theo là sử dụng hàm giải nghĩa trên dữ liệu thử nghiệm để tạo giải thích. Ở đây R ném một lỗi khi sử dụng một khung dữ liệu cũng như h2oFrame.
Đây là lỗi phát sinh khi sử dụng một dataframe:
Error in chk.H2OFrame(x) : must be an H2OFrame
Đây là lỗi phát sinh khi sử dụng một 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 bất cứ ai xin se giúp tôi tìm giải pháp hoặc cách sử dụng hàm giải thích của LIME với dataFrame phù hợp
Vui lòng cung cấp ví dụ về mã có thể tái sản xuất đầy đủ cũng như thông tin phiên bản về gói vôi và h2o R. –
Bạn cần cập nhật mã trong bài đăng của mình để nó có thể tái sản xuất - nó có thể là bất kỳ tập dữ liệu nào (iris sẽ ổn). Vui lòng xem nguyên tắc Ngăn xếp ngăn xếp về MCVE tại đây: https://stackoverflow.com/help/mcve Nếu tôi không thể sao chép/dán mã của bạn để giúp bạn gỡ lỗi mã, thì đó không phải là MCVE. –
@ErinLeDell, cảm ơn bạn đã phản hồi, tôi sẽ thực hiện các thay đổi. – gattaca