"...git@developer.sourcefind.cn:tianlh/lightgbm-dcu.git" did not exist on "29796eee6eabb79e161880976ec02fcd95dfcc4a"
Unverified Commit 729ac43c authored by Nikita Titov's avatar Nikita Titov Committed by GitHub
Browse files

[python][sklearn] do not replace empty dict with `None` for `evals_result_` (#4884)

* Update sklearn.py

* Update sklearn.py

* Update test_sklearn.py
parent f47b34f8
...@@ -779,11 +779,7 @@ class LGBMModel(_LGBMModelBase): ...@@ -779,11 +779,7 @@ class LGBMModel(_LGBMModelBase):
callbacks=callbacks callbacks=callbacks
) )
if evals_result: self._evals_result = evals_result
self._evals_result = evals_result
else: # reset after previous call to fit()
self._evals_result = None
self._best_iteration = self._Booster.best_iteration self._best_iteration = self._Booster.best_iteration
self._best_score = self._Booster.best_score self._best_score = self._Booster.best_score
...@@ -910,7 +906,7 @@ class LGBMModel(_LGBMModelBase): ...@@ -910,7 +906,7 @@ class LGBMModel(_LGBMModelBase):
@property @property
def evals_result_(self): def evals_result_(self):
""":obj:`dict` or :obj:`None`: The evaluation results if validation sets have been specified.""" """:obj:`dict`: The evaluation results if validation sets have been specified."""
if not self.__sklearn_is_fitted__(): if not self.__sklearn_is_fitted__():
raise LGBMNotFittedError('No results found. Need to call fit with eval_set beforehand.') raise LGBMNotFittedError('No results found. Need to call fit with eval_set beforehand.')
return self._evals_result return self._evals_result
......
...@@ -784,7 +784,7 @@ def test_metrics(): ...@@ -784,7 +784,7 @@ def test_metrics():
# no metric # no metric
gbm = lgb.LGBMRegressor(metric='None', **params).fit(**params_fit) gbm = lgb.LGBMRegressor(metric='None', **params).fit(**params_fit)
assert gbm.evals_result_ is None assert gbm.evals_result_ == {}
# non-default metric in eval_metric # non-default metric in eval_metric
gbm = lgb.LGBMRegressor(**params).fit(eval_metric='mape', **params_fit) gbm = lgb.LGBMRegressor(**params).fit(eval_metric='mape', **params_fit)
...@@ -833,7 +833,7 @@ def test_metrics(): ...@@ -833,7 +833,7 @@ def test_metrics():
# no metric # no metric
gbm = lgb.LGBMRegressor(objective='regression_l1', metric='None', gbm = lgb.LGBMRegressor(objective='regression_l1', metric='None',
**params).fit(**params_fit) **params).fit(**params_fit)
assert gbm.evals_result_ is None assert gbm.evals_result_ == {}
# non-default metric in eval_metric for non-default objective # non-default metric in eval_metric for non-default objective
gbm = lgb.LGBMRegressor(objective='regression_l1', gbm = lgb.LGBMRegressor(objective='regression_l1',
...@@ -878,7 +878,7 @@ def test_metrics(): ...@@ -878,7 +878,7 @@ def test_metrics():
# no metric # no metric
gbm = lgb.LGBMRegressor(objective=custom_dummy_obj, metric='None', gbm = lgb.LGBMRegressor(objective=custom_dummy_obj, metric='None',
**params).fit(**params_fit) **params).fit(**params_fit)
assert gbm.evals_result_ is None assert gbm.evals_result_ == {}
# default regression metric with non-default metric in eval_metric for custom objective # default regression metric with non-default metric in eval_metric for custom objective
gbm = lgb.LGBMRegressor(objective=custom_dummy_obj, gbm = lgb.LGBMRegressor(objective=custom_dummy_obj,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment