code: def eval_valid(self, feval=None):
          
          return [item for i in range_(1, self.__num_dataset)
                  for item in self.__inner_eval(self.name_valid_sets[i - 1], i, feval)]
docs: Evaluate for validation data.
  
          Parameters
          ----------
          feval : callable or None, optional (default=None)
              Customized evaluation function.
              Should accept two parameters: preds, train_data,
              and return (eval_name, eval_result, is_higher_better) or list of such tuples.
              For multi-class task, the preds is group by class_id first, then group by row_id.
              If you want to get i-th row preds in j-th class, the access way is preds[j * num_data + i].
  
          Returns
          -------
          result : list
              List with evaluation results.