Learn R Programming

DALEXtra (version 1.3.2)

explain_keras: Wrapper for Python Keras Models

Description

Keras models may be loaded into R environment like any other Python object. This function helps to inspect performance of Python model and compare it with other models, using R tools like DALEX. This function creates an object that is easily accessible R version of Keras model exported from Python via pickle file.

Usage

explain_keras(
  path,
  yml = NULL,
  condaenv = NULL,
  env = NULL,
  data = NULL,
  y = NULL,
  weights = NULL,
  predict_function = NULL,
  residual_function = NULL,
  ...,
  label = NULL,
  verbose = TRUE,
  precalculate = TRUE,
  colorize = TRUE,
  model_info = NULL,
  type = NULL
)

Arguments

path

a path to the pickle file. Can be used without other arguments if you are sure that active Python version match pickle version.

yml

a path to the yml file. Conda virtual env will be recreated from this file. If OS is Windows conda has to be added to the PATH first

condaenv

If yml param is provided, a path to the main conda folder. If yml is null, a name of existing conda environment.

env

A path to python virtual environment.

data

test data set that will be passed to explain.

y

vector that will be passed to explain.

weights

numeric vector with sampling weights. By default it's NULL. If provided then it shall have the same length as data

predict_function

predict function that will be passed into explain. If NULL, default will be used.

residual_function

residual function that will be passed into explain. If NULL, default will be used.

...

other parameters

label

label that will be passed into explain. If NULL, default will be used.

verbose

bool that will be passed into explain. If NULL, default will be used.

precalculate

if TRUE (default) then 'predicted_values' and 'residuals' are calculated when explainer is created.

colorize

if TRUE (default) then WARNINGS, ERRORS and NOTES are colorized. Will work only in the R console.

model_info

a named list (package, version, type) containg information about model. If NULL, DALEX will seek for information on it's own.

type

type of a model, either classification or regression. If not specified then type will be extracted from model_info.

Value

An object of the class 'explainer'.

Example of Python code avialble at documentation explain_scikitlearn

Errors use case Here is shortened version of solution for specific errors

There already exists environment with a name specified by given .yml file If you provide .yml file that in its header contatins name exact to name of environment that already exists, existing will be set active without changing it. You have two ways of solving that issue. Both connected with anaconda prompt. First is removing conda env with command: conda env remove --name myenv And execute function once again. Second is updating env via: conda env create -f environment.yml

Conda cannot find specified packages at channels you have provided. That error may be casued by a lot of things. One of those is that specified version is too old to be avaialble from offcial conda repo. Edit Your .yml file and add link to proper repository at channels section.

Issue may be also connected with the platform. If model was created on the platform with different OS yo may need to remove specific version from .yml file. - numpy=1.16.4=py36h19fb1c0_0 - numpy-base=1.16.4=py36hc3f5095_0 In the example above You have to remove =py36h19fb1c0_0 and =py36hc3f5095_0 If some packages are not availbe for anaconda at all, use pip statement

If .yml file seems not to work, virtual env can be created manually using anaconda promt. conda create -n name_of_env python=3.4 conda install -n name_of_env name_of_package=0.20

Examples

Run this code
# NOT RUN {
library("DALEXtra")
# }
# NOT RUN {
   # Explainer build (Keep in mind that 9th column is target)
   test_data <-
   read.csv(
   "https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv",
   sep = ",")
   # Keep in mind that when pickle is being built and loaded,
   # not only Python version but libraries versions has to match aswell
   explainer <- explain_keras(system.file("extdata", "keras.pkl", package = "DALEXtra"),
   conda = "myenv",
   data = test_data[,1:8], y = test_data[,9])
   plot(model_performance(explainer))

   # Predictions with newdata
   predict(explainer, test_data[1:10,1:8])

# }
# NOT RUN {
# }

Run the code above in your browser using DataLab