  Complex systems are typically characterized by intricate internal dynamics
that are often hard to elucidate. Ideally, this requires methods that allow to
detect and classify in unsupervised way the microscopic dynamical events
occurring in the system. However, decoupling statistically relevant
fluctuations from the internal noise remains most often non-trivial. Here we
describe "Onion Clustering": a simple, iterative unsupervised clustering method
that efficiently detects and classifies statistically relevant fluctuations in
noisy time-series data. We demonstrate its efficiency by analyzing simulation
and experimental trajectories of various systems with complex internal
dynamics, ranging from the atomic- to the microscopic-scale, in- and
out-of-equilibrium. The method is based on an iterative detect-classify-archive
approach. In similar way as peeling the external (evident) layer of an onion
reveals the internal hidden ones, the method performs a first detection and
classification of the most populated dynamical environment in the system and of
its characteristic noise. The signal of such dynamical cluster is then removed
from the time-series data and the remaining part, cleared-out from its noise,
is analyzed again. At every iteration, the detection of hidden dynamical
sub-domains is facilitated by an increasing (and adaptive) relevance-to-noise
ratio. The process iterates until no new dynamical domains can be uncovered,
revealing, as an output, the number of clusters that can be effectively
distinguished/classified in statistically robust way as a function of the
time-resolution of the analysis. Onion Clustering is general and benefits from
clear-cut physical interpretability. We expect that it will help analyzing a
variety of complex dynamical systems and time-series data.
