docstr: To illustrate the meaning of distances between methods, extract 5 real examples from the dataset
  
  Parameters
  ----------
  mean_distances : DataFrame
      DataFrame storing all pairwise distances between methods
  all_comparisons : array
      Array containing, for each instance and each pair of methods, the distance between the contribtuions
  weights : list
      List of contributions from 2 selected methods
  
  Returns
  -------
  method_1 : list
      Contributions of 5 instances selected to display in the second plot for method 1
  method_2 : list
      Contributions of 5 instances selected to display in the second plot for method 2
  l2 : list
      Distance between method_1 and method_2 for the 5 instances
  index : list
      Index of the selected example
  backend_name_1 : list
      Name of the explainability method displayed on the left
  backend_name_2 : list
      Name of the explainability method displayed on the right
docstr_tok: ["To","illustrate","the","meaning","of","distances","between","methods",",","extract","5","real","examples","from","the","dataset","Parameters","--","--","--","--","--","mean_distances",":","DataFrame","DataFrame","storing","all","pairwise","distances","between","methods","all_comparisons",":","array","Array","containing",",","for","each","instance","and","each","pair","of","methods",",","the","distance","between","the","contribtuions","weights",":","list","List","of","contributions","from","2","selected","methods","Returns","--","--","--","-","method_1",":","list","Contributions","of","5","instances","selected","to","display","in","the","second","plot","for","method","1","method_2",":","list","Contributions","of","5","instances","selected","to","display","in","the","second","plot","for","method","2","l2",":","list","Distance","between","method_1","and","method_2","for","the","5","instances","index",":","list","Index","of","the","selected","example","backend_name_1",":","list","Name","of","the","explainability","method","displayed","on","the","left","backend_name_2",":","list","Name","of","the","explainability","method","displayed","on","the","right"]
code: def find_examples(self, mean_distances, all_comparisons, weights):
      """
      To illustrate the meaning of distances between methods, extract 5 real examples from the dataset
  
      Parameters
      ----------
      mean_distances : DataFrame
          DataFrame storing all pairwise distances between methods
      all_comparisons : array
          Array containing, for each instance and each pair of methods, the distance between the contribtuions
      weights : list
          List of contributions from 2 selected methods
  
      Returns
      -------
      method_1 : list
          Contributions of 5 instances selected to display in the second plot for method 1
      method_2 : list
          Contributions of 5 instances selected to display in the second plot for method 2
      l2 : list
          Distance between method_1 and method_2 for the 5 instances
      index : list
          Index of the selected example
      backend_name_1 : list
          Name of the explainability method displayed on the left
      backend_name_2 : list
          Name of the explainability method displayed on the right
      """
      method_1 = []
      backend_name_1 = []
      method_2 = []
      backend_name_2 = []
      index = []
      l2 = []
  
      # Evenly split the scale of L2 distances (from min to max excluding 0)
      for i in np.linspace(
          start=mean_distances[mean_distances > 0].min().min(),
          stop=mean_distances.max().max(),
          num=5,
      ):
          # For each split, find the closest existing L2 distance
          closest_l2 = all_comparisons[:, -1][
              np.abs(all_comparisons[:, -1] - i).argmin()
          ]
          # Return the row that contains this L2 distance
          row = all_comparisons[all_comparisons[:, -1] == closest_l2]
          # Extract corresponding SHAP Values
          contrib_1 = weights[int(row[0, 0])][int(row[0, 2])]
          contrib_2 = weights[int(row[0, 1])][int(row[0, 2])]
          # Extract method names
          method_name_1 = self.methods[int(row[0, 0])]
          method_name_2 = self.methods[int(row[0, 1])]
          # Extract index of the selected example
          index_example = self.index[int(row[0, 2])]
          # Prevent from displaying duplicate examples
          if closest_l2 in l2:
              continue
          method_1.append(contrib_1 / np.linalg.norm(contrib_1, ord=2))
          method_2.append(contrib_2 / np.linalg.norm(contrib_2, ord=2))
          l2.append(closest_l2)
          index.append(index_example)
          backend_name_1.append(method_name_1)
          backend_name_2.append(method_name_2)
  
      return (
          method_1,
          method_2,
          l2,
          index,
          backend_name_1,
          backend_name_2,
      )
  
imports: from category_encoders import OrdinalEncoder
  import copy
  import itertools
  import matplotlib.pyplot
  import numpy
  import pandas
  from plotly import graph_objs
  from plotly.offline import plot
  from plotly.subplots import make_subplots
  from sklearn.manifold import MDS
  from shapash import SmartExplainer
  from shapash.style.style_utils import colors_loading, select_palette, define_style
label_desc: Use image node_id 9 for calling the Consistency obj's underlying member method code with example usage: obj.find_examples(mean_distances, all_comparisons, weights) and returns: method_1,  method_2,  l2,  index,  backend_name_1,  backend_name_2