예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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')
예제 #4
0
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)