function ellipsoids

deeptime.data.ellipsoids(laziness: float = 0.97, seed=None)

Example data of a two-state markov chain which can be featurized into two parallel ellipsoids and optionally rotated into higher-dimensional space.

In particular, a synthetic trajectory of observations of states \(S = \{0, 1\}\) can be generated from a MSM. The transition probabilities have to be chosen so that the chain is lazy, i.e., it is more likely to stay in one state than to transition to another.

Optionally, a continuous observation chain can be generated with two parallel ellipsoidal multivariate normal distributions. In this case, the MSM acts as hidden markov state model with a Gaussian output model. For benchmark and demonstration purposes, this observation chain can be rotated into a higher dimensional space and equipped with additional noise.

(Source code, png, hires.png, pdf)

../../_images/plot_ellipsoids.png
Parameters:
  • laziness (float in half-open interval (0.5, 1.], default=0.97) –

    The probability to stay in either state rather than transitioning. This yields a transition matrix of

    \[P = \begin{pmatrix} \lambda & 1-\lambda \\ 1-\lambda & \lambda \end{pmatrix}, \]

    where \(\lambda\) is the selected laziness parameter.

  • seed (int, optional, default=None) – Optional random seed for reproducibility.

Returns:

dataset – an object that contains methods to create discrete and continuous observations

Return type:

deeptime.data.Ellipsoids

Examples

>>> import deeptime as dt
>>> feature_trajectory = dt.data.ellipsoids(seed=17).observations(n_steps=500)
>>> assert feature_trajectory.shape == (500, 2)