Skip to content

Conversation

@mickpires
Copy link

I'm having a problem which says that ensemble boolean doesn't exist anymore in fit method. I don't know how to do ensemble using the current pysindy version.

I'm having a problem which says that ensemble boolean doesn't exist anymore in fit method. I don't know how to do ensemble using the current pysindy version
@Jacob-Stevens-Haas
Copy link
Member

Thanks for this! First and foremost, thank you for your attention to this project and sharing where the documentation doesn't line up with expectation. We need a better translation, writ large, from the youtube videos to documentation.

Part of the problem with this notebook IIRC is that it took several minutes to run in CI. This means that as we change and evolve the package, there's no automatic notification that this notebook needs to change. You might look in test_notebooks.py to see whether that assessment is accurate, but one way you could perhaps improve it is to look at how examples/tutorial_1 speeds up testing, e.g. with guards like if __name__ != "testing": to change the number of observations or iterations.

Long term, I had thought to break up this notebook into its constituent elements, since they address different problems. Some are more about the basics of a tutorial, but others are more involved How-To guides (see divio's documentation theory for the difference). But I'm definitely open to input, e.g breaking this notebook up but keeping the parts in a folder.

Copy link
Member

@Jacob-Stevens-Haas Jacob-Stevens-Haas left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line: ps.SR3(threshold=0.5) changes to ps.SR3(reg_weight_lam=0.5). The paper that introduced SR3 included a conversion from threshold to regularization weight when using the L0 penalty. However, the conversion was incorrect for other penalties, so we removed it to a separate helper function in the sr3.py module. The default regularizer is L0, so you should add the line
reg_weight_lambda= SR3.calculate_l0_weight(threshold, nu) in order to convert from the threshold to the argument value.

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

Successfully merging this pull request may close these issues.

2 participants