Recent Releases of pykoop
pykoop - pykoop v2.0.1
This release removes pandas from setup.py.
Full changelog: https://github.com/decargroup/pykoop/compare/v2.0.0...v2.0.1
- Python
Published by sdahdah over 1 year ago
pykoop - pykoop v2.0.0
This release introduces two breaking changes, necessitating a new major version:
- The deprecated
KoopmanPipeline.predict_multistep()method has been removed. - They
kernel_or_iftparameter ofRandomFourierKernelApproxhas been renamed tokernel_or_ft, and the correspondingift_attribute has been renamed toft_.
Other than bug fixes, the most notable improvement is the significant reduction of import time, which is due to the removal of the pandas dependency.
Full changelog: https://github.com/decargroup/pykoop/compare/v1.2.3...v2.0.0
New features
- Removed
pandasdependency to resolve slow imports (#166)
Bug fixes
- Fixed incorrect argument names for kernel approximation (#175)
- Fixed bug when using
multioutput='raw_values'regression metric keyword argument when scoring (#164) - Fixed prediction bug when no inputs are used (#173)
- Fixed
scikit-learnmethod resolution order (#177) - Fixed default LMI strictness (#168)
- Python
Published by sdahdah over 1 year ago
pykoop - pykoop v1.2.3
This release once again fixes a problem in the Read the Docs config file.
Full changelog: https://github.com/decargroup/pykoop/compare/v1.2.2...v1.2.3
- Python
Published by sdahdah over 2 years ago
pykoop - pykoop v1.2.2
This release fixes a typo in the Read the Docs config file.
Full changelog: https://github.com/decargroup/pykoop/compare/v1.2.1...v1.2.2
- Python
Published by sdahdah over 2 years ago
pykoop - pykoop v1.2.1
This release adds a missing Read the Docs config file that was preventing the documentation from being built.
Full changelog: https://github.com/decargroup/pykoop/compare/v1.2.0...v1.2.1
- Python
Published by sdahdah over 2 years ago
pykoop - pykoop v1.2.0
This release allows users to manually set a Koopman matrix computed outside of pykoop for easier interoperability with other libraries or custom regression code. The release also adds global configuration management, specifically to skip input validation. This can significantly (2x!) speed up predict_trajectory() and other methods that call lift(), retract(), etc. frequently. Finally, this release fixes some awkward scoring behaviour, making score_trajectory() work better in hyperparameter optimization setups.
Full changelog: https://github.com/decargroup/pykoop/compare/v1.1.3...v1.2.0
New features
- Added
DataRegressorto allowKoopmanPipelineobjects to be created directly from NumPy arrays (#129) - Added sklearn-style configuration management (
set_config(skip_validation),get_config()andconfig_context(skip_validation)) to allow skipping input validation in performance-critical areas (#151) - Added
KoopmanPipeline.frequency_response()to compute the frequency response of a Koopman system without plotting the Bode plot (#143) - Added the
plot_errorparameter toplot_predicted_trajectory()to allow plotting the prediction error instead of the trajectory (#148) - Made
DelayLiftingFncompatible withSplitPipeline(#145)
Bug fixes
- Fixed bug where
score_trajectory()could return a worse score than theerror_score, or even returnNaN(#132)
- Python
Published by sdahdah over 2 years ago
pykoop - pykoop v1.1.3
This release fixes a bug where diverging predictions were not scored correctly. It also adds the error_score parameter to KoopmanPipeline.make_scorer() and score_trajectory() to allow more fine-grained control over the behaviour.
Full changelog: https://github.com/decargroup/pykoop/compare/v1.1.2...v1.1.3
Bug fixes
- Fix incorrect scoring with
NaNentries (https://github.com/decargroup/pykoop/pull/123)
- Python
Published by sdahdah about 3 years ago
pykoop - pykoop v1.1.2
This release exists because I forgot to bump the version number in the source code when releasing v1.1.1. Sorry!
Full changelog: https://github.com/decargroup/pykoop/compare/v1.1.1...v1.1.2
- Python
Published by sdahdah about 3 years ago
pykoop - pykoop v1.1.1
This release fixes two bugs in KoopmanPipeline.predict_trajectory() and lowers the setup.py minimum Python version to 3.7 for Binder. However, 3.8 is still the lowest officially supported version.
Full changelog: https://github.com/decargroup/pykoop/compare/v1.1.0...v1.1.1
Bug fixes
- Fixed incorrect overflow handling in
predict_trajectory()whenrelift=False(https://github.com/decargroup/pykoop/pull/118) - Fixed bug where
predict_trajectory()did not account for episode feature ifU=None(https://github.com/decargroup/pykoop/pull/116) - Lowered required Python version in setup.py so Binder would work again (https://github.com/decargroup/pykoop/pull/114)
- Python
Published by sdahdah about 3 years ago
pykoop - pykoop v1.1.0
This release features two new types of lifting functions: radial basis functions, and random Fourier features. Click the links for examples, or check them out on Binder!
You can now also use almost any scikit-learn regressor as a backend for EDMD with EdmdMeta. You can find a cool example of sparse regression with the lasso here.
Finally, two quality-of-life changes are introduced in this update. You can access your lifting function feature names with KoopmanLiftingFn.get_feature_names_out(), and you can quickly plot Koopman predictions and Koopman operator properties with a bunch of plot_*() methods scattered throughout the library. See below for more details.
Note that in this release, we are dropping official Python 3.7 support, though almost all features should still work.
Full changelog: https://github.com/decargroup/pykoop/compare/v1.0.5...v1.1.0
New features
- Added radial basis function (RBF) lifting functions in
RbfLiftingFn, along with several ways to choose centers (https://github.com/decargroup/pykoop/pull/103) - Added random Fourier feature (RFF) lifting functions in
KernelApproxLiftingFn, along with other kernel approximations (https://github.com/decargroup/pykoop/pull/110) - Added constant lifting function in
ConstantLiftingFn(https://github.com/decargroup/pykoop/pull/85) - Added support for
scikit-learnlinear regressors inEdmdMeta(https://github.com/decargroup/pykoop/pull/92) - Added support for feature name tracking as strings in
KoopmanLiftingFn.get_feature_names_in()andKoopmanLiftingFn.get_feature_names_out(). If you pass in apandas.DataFrame, thenpykoopcan take the feature names from there (https://github.com/decargroup/pykoop/pull/75) - Added easy plotting helpers in
KoopmanLiftingFn.plot_lifted_trajectory(),KoopmanRegressor.plot_bode(),KoopmanRegressor.plot_eigenvalues(),KoopmanRegressor.plot_koopman_matrix(),KoopmanRegressor.plot_svd(),KoopmanPipeline.plot_predicted_trajectory(),KoopmanPipeline.plot_bode(),KoopmanPipeline.plot_eigenvalues(),KoopmanPipeline.plot_koopman_matrix(), andKoopmanPipeline.plot_svd()(https://github.com/decargroup/pykoop/pull/83)
- Added
example_data_pendulum()andexample_data_duffing().
Bug fixes
- Fixed bug where
predict_trajectoryindexing was wrong whenrelift_state=false(https://github.com/decargroup/pykoop/pull/112) - Fixed Binder package versions (https://github.com/decargroup/pykoop/pull/108)
- Python
Published by sdahdah about 3 years ago
pykoop - pykoop v1.0.5
This release features two quality of life improvements: a better lifting function interface for use outside of scikit-learn, and improved trajectory prediction functionality. More importantly, the docs have been reorganized, the unit tests are no longer a mess, and some Jupyter notebook examples have been added to binder.
Full changelog: https://github.com/decarsg/pykoop/compare/v1.0.4...v1.0.5
New features
- Added
lift(),lift_state(),lift_input(),retract(),retract_state(), andretract_input()helper methods toKoopmanPipelineand all Koopman lifting functions. These functions provide a more convenient way to use a fit Koopman model outside ofscikit-learn(e.g. in control applications) (https://github.com/decarsg/pykoop/pull/61) - Added
predict_trajectory()as a replacement forpredict_multistep(), which is now deprecated. This new function provides a more convenient interface for use outside ofscikit-learn, and also supports global Koopman predictions, where states are not retracted and re-lifted between timesteps (https://github.com/decarsg/pykoop/pull/65).
Enhancements
- Overhauled organization of Sphinx docs (https://github.com/decarsg/pykoop/pull/66)
- Updated examples and added binder links to Juypter notebooks (https://github.com/decarsg/pykoop/pull/70, https://github.com/decarsg/pykoop/pull/71).
- Refactored unit tests, and enabled remote testing and doctests in CI (https://github.com/decarsg/pykoop/pull/67).
Bug fixes
- Fixed a serious bug in
predict_multistep()where only the first episode was scored (https://github.com/decarsg/pykoop/pull/65). - Allowed force quitting LMI regressor using
^Ctwice (https://github.com/decarsg/pykoop/pull/54). - Stopped doctests from failing due to floating point comparisons (https://github.com/decarsg/pykoop/pull/58).
- Python
Published by sdahdah over 3 years ago
pykoop - pykoop v1.0.4
Small release to adjust LMI strictness to match cited arXiv preprint.
- Python
Published by sdahdah over 4 years ago
pykoop - pykoop v1.0.3
No actual code changes. No Zenodo archive was generated because of errors in CITATION.cff.
- Python
Published by sdahdah over 4 years ago
pykoop - pykoop v1.0.2
No actual code changes, only continuous-integration workflows and citation metadata.
- Python
Published by sdahdah over 4 years ago
pykoop - pykoop v1.0.1
v1.0.0 of pykoop was not usable because of a missing __init__.py in a sub-package. All fixed now!
- Python
Published by sdahdah over 4 years ago