From 882ca5ce7c991baaa4e80b17f6e26ba2441d37b2 Mon Sep 17 00:00:00 2001 From: xadupre Date: Tue, 29 Nov 2022 12:49:42 +0100 Subject: [PATCH 1/3] Removes normalize attributes (deprecated) --- .../ut_mlmodel/test_quantile_regression.py | 6 +++--- mlinsights/mlmodel/quantile_regression.py | 17 +++++------------ 2 files changed, 8 insertions(+), 15 deletions(-) diff --git a/_unittests/ut_mlmodel/test_quantile_regression.py b/_unittests/ut_mlmodel/test_quantile_regression.py index 4b6d40b3..cbbe3d3a 100644 --- a/_unittests/ut_mlmodel/test_quantile_regression.py +++ b/_unittests/ut_mlmodel/test_quantile_regression.py @@ -61,7 +61,7 @@ def test_quantile_regression_intercept(self): self.assertNotEqual(clr.intercept_, 0) self.assertNotEqual(clq.intercept_, 0) self.assertEqualArray(clr.intercept_, clq.intercept_) - self.assertEqualArray(clr.coef_, clq.coef_) + self.assertEqualArray(clr.coef_, clq.coef_, atol=1e-10) @unittest.skipIf( compare_module_version(sklver, "0.24") == -1, @@ -77,7 +77,7 @@ def test_quantile_regression_intercept_positive(self): self.assertNotEqual(clr.intercept_, 0) self.assertNotEqual(clq.intercept_, 0) self.assertEqualArray(clr.intercept_, clq.intercept_) - self.assertEqualArray(clr.coef_, clq.coef_) + self.assertEqualArray(clr.coef_, clq.coef_, atol=1e-10) self.assertGreater(clr.coef_.min(), 0) self.assertGreater(clq.coef_.min(), 0) @@ -92,7 +92,7 @@ def test_quantile_regression_intercept_weights(self): self.assertNotEqual(clr.intercept_, 0) self.assertNotEqual(clq.intercept_, 0) self.assertEqualArray(clr.intercept_, clq.intercept_) - self.assertEqualArray(clr.coef_, clq.coef_) + self.assertEqualArray(clr.coef_, clq.coef_, atol=1e-10) def test_quantile_regression_diff(self): X = numpy.array([[0.1], [0.2], [0.3], [0.4], [0.5]]) diff --git a/mlinsights/mlmodel/quantile_regression.py b/mlinsights/mlmodel/quantile_regression.py index 2afaac5a..903ed8e2 100644 --- a/mlinsights/mlmodel/quantile_regression.py +++ b/mlinsights/mlmodel/quantile_regression.py @@ -29,7 +29,7 @@ class QuantileLinearRegression(LinearRegression): value. """ - def __init__(self, fit_intercept=True, normalize=False, copy_X=True, + def __init__(self, fit_intercept=True, copy_X=True, n_jobs=1, delta=0.0001, max_iter=10, quantile=0.5, positive=False, verbose=False): """ @@ -37,13 +37,6 @@ def __init__(self, fit_intercept=True, normalize=False, copy_X=True, whether to calculate the intercept for this model. If set to False, no intercept will be used in calculations (e.g. data is expected to be already centered). - :param normalize: boolean, optional, default False - This parameter is ignored when ``fit_intercept`` is set to False. - If True, the regressors X will be normalized before regression by - subtracting the mean and dividing by the l2-norm. - If you wish to standardize, please use - :class:`sklearn.preprocessing.StandardScaler` before calling ``fit`` on - an estimator with ``normalize=False``. :param copy_X: boolean, optional, default True If True, X will be copied; else, it may be overwritten. :param n_jobs: int, optional, default 1 @@ -65,12 +58,12 @@ def __init__(self, fit_intercept=True, normalize=False, copy_X=True, """ try: LinearRegression.__init__( - self, fit_intercept=fit_intercept, normalize=normalize, + self, fit_intercept=fit_intercept, copy_X=copy_X, n_jobs=n_jobs, positive=positive) except TypeError: # scikit-learn<0.24 LinearRegression.__init__( - self, fit_intercept=fit_intercept, normalize=normalize, + self, fit_intercept=fit_intercept, copy_X=copy_X, n_jobs=n_jobs) self.max_iter = max_iter self.verbose = verbose @@ -140,12 +133,12 @@ def compute_z(Xm, beta, Y, W, delta=0.0001): try: clr = LinearRegression(fit_intercept=False, copy_X=self.copy_X, - n_jobs=self.n_jobs, normalize=self.normalize, + n_jobs=self.n_jobs, positive=self.positive) except AttributeError: # scikit-learn<0.24 clr = LinearRegression(fit_intercept=False, copy_X=self.copy_X, - n_jobs=self.n_jobs, normalize=self.normalize) + n_jobs=self.n_jobs) W = numpy.ones(X.shape[0]) if sample_weight is None else sample_weight self.n_iter_ = 0 From fd27a8b4637d0d0bc450cc4fbd84d25e12a352ff Mon Sep 17 00:00:00 2001 From: xadupre Date: Tue, 29 Nov 2022 12:52:33 +0100 Subject: [PATCH 2/3] Update appveyor.yml --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index 143ac0b5..b67cc5cc 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -12,7 +12,7 @@ init: install: - "%PYTHON%\\python -m pip install --upgrade pip" # for many packages - - pip install llvmlite numba + - "%PYTHON%\\Scripts\\pip install llvmlite numba - "%PYTHON%\\Scripts\\pip install -r requirements-win.txt" # install precompiled versions not available on pypi - "%PYTHON%\\Scripts\\pip install torch torchvision torchaudio" From 7aabda6e6579dd480d305b39ed3db973a1977379 Mon Sep 17 00:00:00 2001 From: xadupre Date: Tue, 29 Nov 2022 12:54:09 +0100 Subject: [PATCH 3/3] Update appveyor.yml --- appveyor.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/appveyor.yml b/appveyor.yml index b67cc5cc..20257516 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -12,7 +12,7 @@ init: install: - "%PYTHON%\\python -m pip install --upgrade pip" # for many packages - - "%PYTHON%\\Scripts\\pip install llvmlite numba + - "%PYTHON%\\Scripts\\pip install llvmlite numba" - "%PYTHON%\\Scripts\\pip install -r requirements-win.txt" # install precompiled versions not available on pypi - "%PYTHON%\\Scripts\\pip install torch torchvision torchaudio"