Lazy init. Returns ------- self : Dataset Constructed Dataset object.
(self)
| 1042 | return self |
| 1043 | |
| 1044 | def construct(self): |
| 1045 | """Lazy init. |
| 1046 | |
| 1047 | Returns |
| 1048 | ------- |
| 1049 | self : Dataset |
| 1050 | Constructed Dataset object. |
| 1051 | """ |
| 1052 | if self.handle is None: |
| 1053 | if self.reference is not None: |
| 1054 | if self.used_indices is None: |
| 1055 | # create valid |
| 1056 | self._lazy_init(self.data, label=self.label, reference=self.reference, |
| 1057 | weight=self.weight, group=self.group, |
| 1058 | init_score=self.init_score, predictor=self._predictor, |
| 1059 | silent=self.silent, feature_name=self.feature_name, params=self.params) |
| 1060 | else: |
| 1061 | # construct subset |
| 1062 | used_indices = list_to_1d_numpy(self.used_indices, np.int32, name='used_indices') |
| 1063 | assert used_indices.flags.c_contiguous |
| 1064 | if self.reference.group is not None: |
| 1065 | group_info = np.array(self.reference.group).astype(np.int32, copy=False) |
| 1066 | _, self.group = np.unique(np.repeat(range_(len(group_info)), repeats=group_info)[self.used_indices], |
| 1067 | return_counts=True) |
| 1068 | self.handle = ctypes.c_void_p() |
| 1069 | params_str = param_dict_to_str(self.params) |
| 1070 | _safe_call(_LIB.LGBM_DatasetGetSubset( |
| 1071 | self.reference.construct().handle, |
| 1072 | used_indices.ctypes.data_as(ctypes.POINTER(ctypes.c_int32)), |
| 1073 | ctypes.c_int(used_indices.shape[0]), |
| 1074 | c_str(params_str), |
| 1075 | ctypes.byref(self.handle))) |
| 1076 | if not self.free_raw_data: |
| 1077 | self.get_data() |
| 1078 | if self.group is not None: |
| 1079 | self.set_group(self.group) |
| 1080 | if self.get_label() is None: |
| 1081 | raise ValueError("Label should not be None.") |
| 1082 | if isinstance(self._predictor, _InnerPredictor) and self._predictor is not self.reference._predictor: |
| 1083 | self.get_data() |
| 1084 | self._set_init_score_by_predictor(self._predictor, self.data, used_indices) |
| 1085 | else: |
| 1086 | # create train |
| 1087 | self._lazy_init(self.data, label=self.label, |
| 1088 | weight=self.weight, group=self.group, |
| 1089 | init_score=self.init_score, predictor=self._predictor, |
| 1090 | silent=self.silent, feature_name=self.feature_name, |
| 1091 | categorical_feature=self.categorical_feature, params=self.params) |
| 1092 | if self.free_raw_data: |
| 1093 | self.data = None |
| 1094 | return self |
| 1095 | |
| 1096 | def create_valid(self, data, label=None, weight=None, group=None, |
| 1097 | init_score=None, silent=False, params=None): |