From 5a9704565aa7a19d1dd60d7caf1d58a2e339d2e3 Mon Sep 17 00:00:00 2001 From: Olivier Grisel Date: Wed, 26 Jan 2022 15:09:58 +0100 Subject: [PATCH 1/3] Fix changelog section order for svm / trees --- doc/whats_new/v1.1.rst | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/doc/whats_new/v1.1.rst b/doc/whats_new/v1.1.rst index 317d0b6cb5ed8..3ad182acabb36 100644 --- a/doc/whats_new/v1.1.rst +++ b/doc/whats_new/v1.1.rst @@ -520,24 +520,24 @@ Changelog `n_iter_`, the number of iterations of the libsvm optimization routine. :pr:`21408` by :user:`Juan Martín Loyola `. +- |Enhancement| :func:`svm.SVR`, :func:`svm.SVC`, :func:`svm.NuSVR`, + :func:`svm.OneClassSVM`, :func:`svm.NuSVC` now raise an error + when the dual-gap estimation produce non-finite parameter weights. + :pr:`22149` by :user:`Christian Ritter ` and + :user:`Norbert Preining `. + - |Fix| :class:`smv.NuSVC`, :class:`svm.NuSVR`, :class:`svm.SVC`, :class:`svm.SVR`, :class:`svm.OneClassSVM` now validate input parameters in `fit` instead of `__init__`. :pr:`21436` by :user:`Haidar Almubarak `. :mod:`sklearn.tree` -....................... +................... - |Fix| Fix a bug in the Poisson splitting criterion for :class:`tree.DecisionTreeRegressor`. :pr:`22191` by :user:`Christian Lorentzen `. -- |Enhancement| :func:`svm.SVR`, :func:`svm.SVC`, :func:`svm.NuSVR`, - :func:`svm.OneClassSVM`, :func:`svm.NuSVC` now raise an error - when the dual-gap estimation produce non-finite parameter weights. - :pr:`22149` by :user:`Christian Ritter ` and - :user:`Norbert Preining `. - :mod:`sklearn.utils` .................... From fc9f9760a9066816dcbbd33cbb4dfa13455b23de Mon Sep 17 00:00:00 2001 From: Olivier Grisel Date: Wed, 26 Jan 2022 15:11:26 +0100 Subject: [PATCH 2/3] Make test_forest.test_poisson_vs_mse robust to random seed change --- sklearn/ensemble/tests/test_forest.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/sklearn/ensemble/tests/test_forest.py b/sklearn/ensemble/tests/test_forest.py index 8408c870aa2d0..8a00bd27a8499 100644 --- a/sklearn/ensemble/tests/test_forest.py +++ b/sklearn/ensemble/tests/test_forest.py @@ -229,7 +229,7 @@ def test_poisson_vs_mse(): forest_mse.fit(X_train, y_train) dummy = DummyRegressor(strategy="mean").fit(X_train, y_train) - for X, y, val in [(X_train, y_train, "train"), (X_test, y_test, "test")]: + for X, y, data_name in [(X_train, y_train, "train"), (X_test, y_test, "test")]: metric_poi = mean_poisson_deviance(y, forest_poi.predict(X)) # squared_error forest might produce non-positive predictions => clip # If y = 0 for those, the poisson deviance gets too good. @@ -244,9 +244,9 @@ def test_poisson_vs_mse(): # As squared_error might correctly predict 0 in train set, its train # score can be better than Poisson. This is no longer the case for the # test set. But keep the above comment for clipping in mind. - if val == "test": + if data_name == "val": assert metric_poi < metric_mse - assert metric_poi < 0.5 * metric_dummy + assert metric_poi < 0.8 * metric_dummy @pytest.mark.parametrize("criterion", ("poisson", "squared_error")) From 6842b054ca3d0d725b8bf1057dfc7f01a3a18ae3 Mon Sep 17 00:00:00 2001 From: Guillaume Lemaitre Date: Wed, 26 Jan 2022 18:47:41 +0100 Subject: [PATCH 3/3] Update sklearn/ensemble/tests/test_forest.py --- sklearn/ensemble/tests/test_forest.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sklearn/ensemble/tests/test_forest.py b/sklearn/ensemble/tests/test_forest.py index 8a00bd27a8499..24c16f0558a2c 100644 --- a/sklearn/ensemble/tests/test_forest.py +++ b/sklearn/ensemble/tests/test_forest.py @@ -244,7 +244,7 @@ def test_poisson_vs_mse(): # As squared_error might correctly predict 0 in train set, its train # score can be better than Poisson. This is no longer the case for the # test set. But keep the above comment for clipping in mind. - if data_name == "val": + if data_name == "test": assert metric_poi < metric_mse assert metric_poi < 0.8 * metric_dummy