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: 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 inEdmdMeta
(#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
, thenpykoop
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()
, andKoopmanPipeline.plot_svd()
(#83)
- Added
example_data_pendulum()
andexample_data_duffing()
.