diff --git a/qlib/contrib/model/gbdt.py b/qlib/contrib/model/gbdt.py index f14205f888..22c29cd499 100644 --- a/qlib/contrib/model/gbdt.py +++ b/qlib/contrib/model/gbdt.py @@ -51,7 +51,7 @@ def _prepare_data(self, dataset: DatasetH, reweighter=None) -> List[Tuple[lgb.Da w = reweighter.reweight(df) else: raise ValueError("Unsupported reweighter type.") - ds_l.append((lgb.Dataset(x.values, label=y, weight=w), key)) + ds_l.append((lgb.Dataset(x.values, label=y, weight=w, free_raw_data=False), key)) return ds_l def fit( @@ -109,8 +109,10 @@ def finetune(self, dataset: DatasetH, num_boost_round=10, verbose_eval=20, rewei verbose level """ # Based on existing model and finetune by train more rounds - dtrain, _ = self._prepare_data(dataset, reweighter) # pylint: disable=W0632 - if dtrain.empty: + ds_l = self._prepare_data(dataset, reweighter) + dtrain, _ = ds_l[0] + + if dtrain.construct().num_data() == 0: raise ValueError("Empty data from dataset, please check your dataset config.") verbose_eval_callback = lgb.log_evaluation(period=verbose_eval) self.model = lgb.train(