-
Notifications
You must be signed in to change notification settings - Fork 357
Description
Problem
See coefficient plots in example notebooks 1 and 5, which both show the coefficient matrix
Expected vs Actual
As I understood it, if fit_intercept=False (default)
T/S
the fit_intercept parameter is used to calculate offsets in BaseOptimizer.fit(). Those results are used later in the function to explicitly self._set_intercept(). Might also be some interaction with normalize_columns.
Nevermind, this is because even if optimizer fit_intercept is false, PolynomialLibrary defaults to providing a zeroeth order term unless include_bias is false (true by default). WeakPDELibrary and SINDyPILibrary also has an inclue_bias term because they're doing more than just evaluating functions, but maybe that's another piece of evidence that they should be subclasses of SINDy, not BaseFeatureLibrary.
It's also unclear how these options interact - i.e. if both are true, does the model try to fit two intercepts? I'm planting a flag that we ought to remove one or both of these options as part of the breaking changes I discussed last week, slightly biased towards removing include_bias.