tropea_clustering.onion_multi_smooth¶
- tropea_clustering.onion_multi_smooth(X, delta_t, bins='auto', number_of_sigmas=3.0, max_area_overlap=0.8)[source]¶
Performs onion clustering on the data array ‘X’.
Returns an array of integer labels, one for each frame. Unclassified frames are labelled “-1”.
Note
This function is currently in beta testing. The output could change in the future. Use with caution.
- Parameters:
X (ndarray of shape (n_particles, n_frames, n_features)) – The time-series data to cluster.
delta_t (int) – The minimum lifetime required for the clusters. Also referred to as the “time resolution” of the clustering analysis.
bins (int, default="auto") – The number of bins used for the construction of the histograms. Can be an integer value, or “auto”. If “auto”, the default of numpy.histogram_bin_edges is used (see https://numpy.org/doc/stable/reference/generated/numpy.histogram_bin_edges.html#numpy.histogram_bin_edges).
number_of_sigmas (float, default=3.0) – Sets the thresholds for classifing a signal sequence inside a state: the sequence is contained in the state if it is entirely contained inside number_of_sigmas * state.sigmas times from state.mean.
max_area_overlap (float, default=0.8) – Thresold to consider two Gaussian states overlapping, and thus merge them together.
- Returns:
states_list (List[StateMulti]) – The list of the identified states.Refer to the documentation of StateMulti for accessing the information on the states.
labels (ndarray of shape (n_particles, n_frames)) – Cluster labels for each frame. Unclassified points are given the label “-1”.
- Return type:
tuple[list[StateMulti], ndarray[tuple[int, …], dtype[int64]]]
Example
import numpy as np from tropea_clustering import onion_multi_smooth # Select time resolution delta_t = 2 # Create random input data np.random.seed(1234) n_features = 2 n_particles = 5 n_steps = 1000 input_data = np.random.rand(n_particles, n_steps, n_features) # Run Onion Clustering state_list, labels = onion_multi_smooth(input_data, delta_t)