pub struct TransitionMatrix {
pub cluster_ids: Vec<ClusterId>,
pub probabilities: Vec<Vec<f32>>,
pub observations: Vec<Vec<u32>>,
/* private fields */
}Expand description
Transition matrix for Markov chain analysis.
Represents the probabilities of transitioning from one cluster to another.
Fields§
§cluster_ids: Vec<ClusterId>Ordered list of cluster IDs (defines row/column indices).
probabilities: Vec<Vec<f32>>Transition probabilities (row = source, column = target). Values are probabilities (0.0 to 1.0, rows sum to 1.0).
observations: Vec<Vec<u32>>Raw observation counts (row = source, column = target).
Implementations§
Source§impl TransitionMatrix
impl TransitionMatrix
Sourcepub fn new(cluster_ids: Vec<ClusterId>) -> Self
pub fn new(cluster_ids: Vec<ClusterId>) -> Self
Create a new transition matrix for the given clusters.
Sourcepub fn index_of(&self, cluster_id: &ClusterId) -> Option<usize>
pub fn index_of(&self, cluster_id: &ClusterId) -> Option<usize>
Get the index for a cluster ID.
Sourcepub fn record_transition(&mut self, from: &ClusterId, to: &ClusterId)
pub fn record_transition(&mut self, from: &ClusterId, to: &ClusterId)
Record an observed transition.
Sourcepub fn compute_probabilities(&mut self)
pub fn compute_probabilities(&mut self)
Compute probabilities from observation counts.
Sourcepub fn probability(&self, from: &ClusterId, to: &ClusterId) -> Option<f32>
pub fn probability(&self, from: &ClusterId, to: &ClusterId) -> Option<f32>
Get the transition probability from one cluster to another.
Sourcepub fn observation_count(&self, from: &ClusterId, to: &ClusterId) -> Option<u32>
pub fn observation_count(&self, from: &ClusterId, to: &ClusterId) -> Option<u32>
Get the observation count for a transition.
Sourcepub fn non_zero_transitions(&self) -> Vec<(ClusterId, ClusterId, f32)>
pub fn non_zero_transitions(&self) -> Vec<(ClusterId, ClusterId, f32)>
Get all non-zero transitions as (from, to, probability) tuples.
Sourcepub fn stationary_distribution(&self) -> Option<Vec<f32>>
pub fn stationary_distribution(&self) -> Option<Vec<f32>>
Get the stationary distribution (eigenvector of eigenvalue 1). Returns None if the matrix is not ergodic.
Sourcepub fn rebuild_index_map(&mut self)
pub fn rebuild_index_map(&mut self)
Rebuild the index map (needed after deserialization).
Trait Implementations§
Source§impl Clone for TransitionMatrix
impl Clone for TransitionMatrix
Source§fn clone(&self) -> TransitionMatrix
fn clone(&self) -> TransitionMatrix
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more