Pykoop

Latest version: v1.2.3

Safety actively analyzes 641009 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

1.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()` when `relift=False` (https://github.com/decargroup/pykoop/pull/118)
* Fixed bug where `predict_trajectory()` did not account for episode feature if `U=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)

1.1.0

This release features two new types of lifting functions: [radial basis functions](https://pykoop.readthedocs.io/en/latest/examples.html#radial-basis-functions-on-a-pendulum), and [random Fourier features](https://pykoop.readthedocs.io/en/latest/examples.html#random-fourier-features-on-a-duffing-oscillator). 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](https://pykoop.readthedocs.io/en/latest/examples.html#sparse-regression).

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-learn` linear regressors in `EdmdMeta` (https://github.com/decargroup/pykoop/pull/92)
* Added support for feature name tracking as strings in `KoopmanLiftingFn.get_feature_names_in()` and `KoopmanLiftingFn.get_feature_names_out()`. If you pass in a `pandas.DataFrame`, then `pykoop` can 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()`, and
* `KoopmanPipeline.plot_svd()` (https://github.com/decargroup/pykoop/pull/83)
* Added `example_data_pendulum()` and `example_data_duffing()`.

Bug fixes

* Fixed bug where `predict_trajectory` indexing was wrong when `relift_state=false` (https://github.com/decargroup/pykoop/pull/112)
* Fixed Binder package versions (https://github.com/decargroup/pykoop/pull/108)

1.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](https://pykoop.readthedocs.io/en/stable/), the unit tests are no longer a mess, and [some Jupyter notebook examples have been added to binder](https://mybinder.org/v2/gh/decarsg/pykoop/main?labpath=notebooks).

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()`, and `retract_input()` helper methods to `KoopmanPipeline` and all Koopman lifting functions. These functions provide a more convenient way to use a fit Koopman model outside of `scikit-learn` (e.g. in control applications) (https://github.com/decarsg/pykoop/pull/61)
* Added `predict_trajectory()` as a replacement for `predict_multistep()`, which is now deprecated. This new function provides a more convenient interface for use outside of `scikit-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 `^C` twice (https://github.com/decarsg/pykoop/pull/54).
* Stopped doctests from failing due to floating point comparisons (https://github.com/decarsg/pykoop/pull/58).

1.0.4

Small release to adjust LMI strictness to match [cited arXiv preprint](https://arxiv.org/abs/2110.09658).

1.0.3

No actual code changes. No Zenodo archive was generated because of errors in `CITATION.cff`.

1.0.2

No actual code changes, only continuous-integration workflows and citation metadata.

Page 2 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.