docs: def to_matrix(self, values, selected_regions, default_value=0):
          """Creates a 2D multi-indexed matrix representation of the data.
              This representation allows the data to be sent to the machine learning algorithms.
  
          Args:
              :param values: The value or values that are going to fill the matrix.
              :param selected_regions: The index to one axis of the matrix.
              :param default_value: The default fill value of the matrix
  
          """
          if isinstance(values, list):
              for v in values:
                  try:
                      self.data[v] = self.data[v].map(float)
                  except:
                      print(self.data[v])
          else:
              self.data[values] = self.data[values].map(float)
          print("started pivoting")
          self.data = pd.pivot_table(self.data,
                                     values=values, columns=selected_regions, index=['sample'],
                                     fill_value=default_value)
          print("end of pivoting")