Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

LinearRegression unknown keyword normalize #506

Open
huangtu577 opened this issue May 20, 2024 · 2 comments
Open

LinearRegression unknown keyword normalize #506

huangtu577 opened this issue May 20, 2024 · 2 comments

Comments

@huangtu577
Copy link

I just installed the PySINDy library, and it throws an TypeError: LinearRegression.__init__() got an unexpected keyword argument 'normalize' out of the box.
The version that conda installed for scikit-learn without any specification is 1.4.2.
According to the Changelog from scikit-learn , the normalize keyword has been deprecated since version 1.0 and removed since 1.2. However there is a proposed fix in the above linked changelog.

Reproducing code example:

import pysindy
differentiation_method = ps.FiniteDifference(order=2)
feature_library = ps.PolynomialLibrary(degree=3)
optimizer = ps.STLSQ(threshold=0.2)

Error message:


TypeError Traceback (most recent call last)
Cell In[15], line 3
1 differentiation_method = ps.FiniteDifference(order=2)
2 feature_library = ps.PolynomialLibrary(degree=3)
----> 3 optimizer = ps.STLSQ(threshold=0.2)

File ~/anaconda3/envs/rebound/lib/python3.10/site-packages/pysindy/optimizers/stlsq.py:105, in STLSQ.init(self, threshold, alpha, max_iter, ridge_kw, normalize, fit_intercept, copy_X, initial_guess)
94 def init(
95 self,
96 threshold=0.1,
(...)
103 initial_guess=None,
104 ):
--> 105 super(STLSQ, self).init(
106 max_iter=max_iter,
107 normalize=normalize,
108 fit_intercept=fit_intercept,
109 copy_X=copy_X,
110 )
112 if threshold < 0:
113 raise ValueError("threshold cannot be negative")

File ~/anaconda3/envs/rebound/lib/python3.10/site-packages/pysindy/optimizers/base.py:81, in BaseOptimizer.init(self, max_iter, normalize, fit_intercept, initial_guess, copy_X)
73 def init(
74 self,
75 max_iter=20,
(...)
79 copy_X=True,
80 ):
---> 81 super(BaseOptimizer, self).init(
82 fit_intercept=fit_intercept, normalize=normalize, copy_X=copy_X
83 )
85 if max_iter <= 0:
86 raise ValueError("max_iter must be positive")

TypeError: LinearRegression.init() got an unexpected keyword argument 'normalize'

PySINDy/Python version information:

1.3.0 3.10.14 (main, May 6 2024, 19:42:50) [GCC 11.2.0]

@Jacob-Stevens-Haas
Copy link
Collaborator

Jacob-Stevens-Haas commented May 20, 2024

Thank you!! This is a great find. I'll get on it soon. Since SINDy.model is a Pipeline, this should be a reasonably easy fix

@ggmirandac
Copy link

Hi,

I just wanted to mention that the version that you have on Conda-forge is not up to date, and results on the same issues.

Just that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants