code: def save_evaluations(self, evaluations_file = None):
          
          iterations = np.array(range(1, self.Y.shape[0] + 1))[:, None]
          results = np.hstack((iterations, self.Y, self.X))
          header = ['Iteration', 'Y'] + ['var_' + str(k) for k in range(1, self.X.shape[1] + 1)]
  
          data = [header] + results.tolist()
          self._write_csv(evaluations_file, data)
docs: Saves  evaluations at each iteration of the optimization
  
          :param evaluations_file: name of the file in which the results are saved.