MCPcopy Create free account
hub / github.com/antmachineintelligence/mtgbmcode / __inner_eval

Method __inner_eval

python-package/lightgbmmt/basic.py:2703–2734  ·  view source on GitHub ↗

Evaluate training or validation data.

(self, data_name, data_idx, feval=None)

Source from the content-addressed store, hash-verified

2701 return hist, bin_edges
2702
2703 def __inner_eval(self, data_name, data_idx, feval=None):
2704 """Evaluate training or validation data."""
2705 if data_idx >= self.__num_dataset:
2706 raise ValueError("Data_idx should be smaller than number of dataset")
2707 self.__get_eval_info()
2708 ret = []
2709 if self.__num_inner_eval > 0:
2710 result = np.zeros(self.__num_inner_eval, dtype=np.float64)
2711 tmp_out_len = ctypes.c_int(0)
2712 _safe_call(_LIB.LGBM_BoosterGetEval(
2713 self.handle,
2714 ctypes.c_int(data_idx),
2715 ctypes.byref(tmp_out_len),
2716 result.ctypes.data_as(ctypes.POINTER(ctypes.c_double))))
2717 if tmp_out_len.value != self.__num_inner_eval:
2718 raise ValueError("Wrong length of eval results")
2719 for i in range_(self.__num_inner_eval):
2720 ret.append((data_name, self.__name_inner_eval[i],
2721 result[i], self.__higher_better_inner_eval[i]))
2722 if feval is not None:
2723 if data_idx == 0:
2724 cur_data = self.train_set
2725 else:
2726 cur_data = self.valid_sets[data_idx - 1]
2727 feval_ret = feval(self.__inner_predict(data_idx), cur_data)
2728 if isinstance(feval_ret, list):
2729 for eval_name, val, is_higher_better in feval_ret:
2730 ret.append((data_name, eval_name, val, is_higher_better))
2731 else:
2732 eval_name, val, is_higher_better = feval_ret
2733 ret.append((data_name, eval_name, val, is_higher_better))
2734 return ret
2735
2736 def __inner_predict(self, data_idx):
2737 """Predict for training and validation dataset."""

Callers 3

evalMethod · 0.95
eval_trainMethod · 0.95
eval_validMethod · 0.95

Calls 4

__get_eval_infoMethod · 0.95
__inner_predictMethod · 0.95
_safe_callFunction · 0.85
appendMethod · 0.80

Tested by

no test coverage detected