class_docstr: An explainer for keras-style recurrent neural networks, where the
  input shape is (n_samples, n_timesteps, n_features). This class
  just extends the LimeTabularExplainer class and reshapes the training
  data and feature names such that they become something like
  
  (val1_t1, val1_t2, val1_t3, ..., val2_t1, ..., valn_tn)
  
  Each of the methods that take data reshape it appropriately,
  so you can pass in the training/testing data exactly as you
  would to the recurrent neural network.
class_docstr_tok: ["An","explainer","for","keras-style","recurrent","neural","networks",",","where","the","input","shape","is","(","n_samples",",","n_timesteps",",","n_features",")",".","This","class","just","extends","the","LimeTabularExplainer","class","and","reshapes","the","training","data","and","feature","names","such","that","they","become","something","like","(","val1_t1",",","val1_t2",",","val1_t3",",","...",",","val2_t1",",","...",",","valn_tn",")","Each","of","the","methods","that","take","data","reshape","it","appropriately",",","so","you","can","pass","in","the","training\/testing","data","exactly","as","you","would","to","the","recurrent","neural","network","."]
docstr: The predict_proba method will expect 3d arrays, but we are reshaping
  them to 2D so that LIME works correctly. This wraps the function
  you give in explain_instance to first reshape the data to have
  the shape the the keras-style network expects.
docstr_tok: ["The","predict_proba","method","will","expect","3d","arrays",",","but","we","are","reshaping","them","to","2D","so","that","LIME","works","correctly",".","This","wraps","the","function","you","give","in","explain_instance","to","first","reshape","the","data","to","have","the","shape","the","the","keras-style","network","expects","."]
code: def _make_predict_proba(self, func):
      """
      The predict_proba method will expect 3d arrays, but we are reshaping
      them to 2D so that LIME works correctly. This wraps the function
      you give in explain_instance to first reshape the data to have
      the shape the the keras-style network expects.
      """
  
      def predict_proba(X):
          n_samples = X.shape[0]
          new_shape = (n_samples, self.n_features, self.n_timesteps)
          X = np.transpose(X.reshape(new_shape), axes=(0, 2, 1))
          return func(X)
  
      return predict_proba
  
imports: import collections
  import copy
  from functools import partial
  import json
  import warnings
  import numpy
  import scipy
  import sklearn
  import sklearn.preprocessing
  from sklearn.utils import check_random_state
  from pyDOE2 import lhs
  from scipy.stats.distributions import norm
  from lime.discretize import QuartileDiscretizer
  from lime.discretize import DecileDiscretizer
  from lime.discretize import EntropyDiscretizer
  from lime.discretize import BaseDiscretizer
  from lime.discretize import StatsDiscretizer
  from .None import explanation
  from .None import lime_base
label_desc: Use image node_id 2 for calling the RecurrentTabularExplainer obj's underlying member method code with example usage: obj._make_predict_proba(func) and returns: predict_proba, func