dynsight.analysis.two_nn_estimator¶
- dynsight.analysis.two_nn_estimator(data, metric)[source]¶
Computes the intrinsic dimension with Two-NN estimator.
See for reference: Facco, E., d’Errico, M., Rodriguez, A. et al., Sci Rep 7, 12140 (2017). https://doi.org/10.1038/s41598-017-11873-y
- Parameters:
data (NDArray[np.float64]) – Has shape (n_atoms, n_frames, n_dims)
metric (Callable[[NDArray[np.float64], NDArray[np.float64]], float]) – Distance metric for scipy.spatial.distance.cdist.
- Return type:
Example
from sklearn.datasets import make_swiss_roll import numpy as np from dynsight.analysis import two_nn_estimator from scipy.spatial.distance import euclidean # Swiss roll is intrinsically 2-dimensional frame, _ = make_swiss_roll( n_samples=500, noise=0.05, random_state=42, ) # Create artificial trajectory with 3 identical frames data = np.stack([frame, frame, frame], axis=1) intr_dim = two_nn_estimator(data, euclidean)