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)