You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm working on a Text classification Problem with Keras and lime.
My code talks about credit risk which is a classification problem, Yes or No,
When I predict the outcome for the first four Test Data I get: Yes No No Yes.
But when I explain my model with lime I get for the first four cases: No Yes Yes Yes.
Why is this the case and how can I fix it?
Hi,
I'm working on a Text classification Problem with Keras and lime.
My code talks about credit risk which is a classification problem, Yes or No,
When I predict the outcome for the first four Test Data I get: Yes No No Yes.
But when I explain my model with lime I get for the first four cases: No Yes Yes Yes.
Why is this the case and how can I fix it?
Thank you in advance!!
My code is the following:
y_pred <- model_CNN_K_2T %>% predict_classes(x_test)
y_pred_prob <- model_CNN_K_2T %>% predict(x_test)
########################
Explanation of the model
########################
#install.packages("lime")
library(lime)
class(model_CNN_K_2T)
Setup lime::model_type() function for keras
model_type.keras.engine.sequential.Sequential <- function(x, ...) {
return("classification")
}
Setup lime::predict_model() function for keras
predict_model.keras.engine.sequential.Sequential <- function(x, newdata, type, ...) {
pred <- predict_proba(object = x, x = as.matrix(newdata))
return(data.frame(Yes = pred, No = 1 - pred))
}
predict_model.keras.engine.sequential.Sequential(x = model_CNN_K_2T, newdata = x_test, type = 'raw') %>% tibble::as_tibble()
get_embedding_explanation <- function(text) {
tokenizer %>% fit_text_tokenizer(text)
text_to_seq <- texts_to_sequences(tokenizer, text)
sentences <- text_to_seq %>% pad_sequences(maxlen = maxlen)
}
sentence_to_explain <- as.character(Refinitiv_data_test$Text[1:4])
explainer <- lime(Refinitiv_data_train$Text, model = model_CNN_K_2T, preprocess = get_embedding_explanation, bin_continuous = FALSE)
Get explanation for the first 20 words
explanation <- lime::explain(sentence_to_explain, explainer, n_features = 20, n_labels = 1, kernel_width = 0.5)
Different graphical ways to show the same information
plot_text_explanations(explanation)
plot_features(explanation)
Show Prediction
y_pred[1:4]
y_pred_prob[1:4]
The text was updated successfully, but these errors were encountered: