Skip to content

pykoop v1.1.0

Compare
Choose a tag to compare
@sdahdah sdahdah released this 15 Dec 18:18
· 128 commits to main since this release
82df7c4

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: v1.0.5...v1.1.0

New features

  • Added radial basis function (RBF) lifting functions in RbfLiftingFn, along with several ways to choose centers (#103)
  • Added random Fourier feature (RFF) lifting functions in KernelApproxLiftingFn, along with other kernel approximations (#110)
  • Added constant lifting function in ConstantLiftingFn (#85)
  • Added support for scikit-learn linear regressors in EdmdMeta (#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 (#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() (#83)
  • Added example_data_pendulum() and example_data_duffing().

Bug fixes

  • Fixed bug where predict_trajectory indexing was wrong when relift_state=false (#112)
  • Fixed Binder package versions (#108)