def test_score(): kernel = GaussianKernel(1.) dataset = bickley_jet(n_particles=100, n_jobs=1) ds_2d = dataset.endpoints_dataset() ds_3d = ds_2d.to_3d().cluster(4) ref_score = KVAD(kernel, epsilon=1e-6).fit_fetch(ds_3d).score with torch.no_grad(): chi_x = torch.from_numpy(ds_3d.data) y = torch.from_numpy(ds_3d.data_lagged) score_net = kvad_score(chi_x, y, kernel=kernel).numpy() np.testing.assert_almost_equal(score_net, ref_score, decimal=1)
def test_score(): dataset = bickley_jet(n_particles=100, n_jobs=1) ds_2d = dataset.endpoints_dataset() ds_3d = ds_2d.to_3d().cluster(4) kvad_3d_cluster_model = kvad(ds_3d.data, ds_3d.data_lagged, Y=ds_2d.data_lagged) with torch.no_grad(): chi_X = torch.from_numpy(ds_3d.data) Y = torch.from_numpy(ds_2d.data_lagged) score_net = kvad_score(chi_X, Y, mode='clamp', epsilon=1e-10).numpy() np.testing.assert_almost_equal(score_net, kvad_3d_cluster_model.score, decimal=1)
Kernel CCA on the Bickley jet to find coherent sets =================================================== This example shows an application of :class:`KernelCCA <deeptime.decomposition.KernelCCA>` on the :meth:`bickley jet <deeptime.data.bickley_jet>` dataset. One can cluster in the singular function space to find coherent structures. """ import matplotlib.pyplot as plt import numpy as np from deeptime.clustering import KMeans from deeptime.data import bickley_jet from deeptime.decomposition import KernelCCA from deeptime.kernels import GaussianKernel dataset = bickley_jet(n_particles=1000, n_jobs=8).endpoints_dataset() kernel = GaussianKernel(.7) estimator = KernelCCA(kernel, n_eigs=5, epsilon=1e-3) model = estimator.fit((dataset.data, dataset.data_lagged)).fetch_model() ev_real = np.real(model.eigenvectors) kmeans = KMeans(n_clusters=7, n_jobs=8).fit(ev_real) kmeans = kmeans.fetch_model() fig = plt.figure() gs = fig.add_gridspec(ncols=2, nrows=3) ax = fig.add_subplot(gs[0, 0]) ax.scatter(*dataset.data.T, c=ev_real[:, 0]) ax.set_title('1st Eigenfunction')
r""" Bickley Jet =========== The :meth:`deeptime.data.bickley_jet` dataset. """ # sphinx_gallery_thumbnail_number = 1 import matplotlib.pyplot as plt import numpy as np from deeptime.data import bickley_jet n_particles = 250 dataset = bickley_jet(n_particles, n_jobs=8) c = np.copy(dataset[0, :, 0]) c /= c.max() fig, ax = plt.subplots(1, 1, figsize=(6, 4)) ani = dataset.make_animation(c=c, agg_backend=False, interval=75, fig=fig, ax=ax, max_frame=100)