sklears_mixture/
time_series.rs1#[derive(Debug, Clone)]
12pub struct HMMConfig {
13 pub n_states: usize,
15 pub max_iter: usize,
17 pub tol: f64,
19}
20
21#[derive(Debug, thiserror::Error)]
23pub enum HMMError {
24 #[error("Invalid number of states: {0}")]
25 InvalidStates(usize),
26 #[error("Convergence failed after {0} iterations")]
27 ConvergenceFailed(usize),
28 #[error("Invalid observation sequence")]
29 InvalidObservation,
30}
31
32#[derive(Debug, Clone)]
34pub struct HiddenMarkovModel;
35
36#[derive(Debug, Clone)]
38pub struct HiddenMarkovModelTrained;
39
40#[derive(Debug, Clone)]
42pub struct HiddenMarkovModelBuilder;
43
44impl HiddenMarkovModelBuilder {
45 pub fn new(_n_states: usize) -> Self {
46 Self
47 }
48
49 pub fn build(self) -> HiddenMarkovModel {
50 HiddenMarkovModel
52 }
53}
54
55#[derive(Debug, Clone, PartialEq)]
57pub enum RegimeType {
58 MeanSwitching,
60 VarianceSwitching,
62 AutoregressiveSwitching,
64 FullSwitching,
66}
67
68#[derive(Debug, Clone)]
70pub struct RegimeParameters;
71
72#[derive(Debug, Clone)]
74pub struct RSMConfig;
75
76#[derive(Debug, Clone)]
78pub struct RegimeSwitchingModel;
79
80#[derive(Debug, Clone)]
82pub struct RegimeSwitchingModelTrained;
83
84#[derive(Debug, Clone)]
86pub struct RegimeSwitchingModelBuilder;
87
88impl RegimeSwitchingModelBuilder {
89 pub fn new(_n_regimes: usize) -> Self {
90 Self
91 }
92
93 pub fn build(self) -> RegimeSwitchingModel {
94 RegimeSwitchingModel
96 }
97}
98
99#[derive(Debug, Clone)]
101pub struct SSMConfig;
102
103#[derive(Debug, Clone)]
105pub struct SwitchingStateSpaceModel;
106
107#[derive(Debug, Clone)]
109pub struct SwitchingStateSpaceModelTrained;
110
111#[derive(Debug, Clone)]
113pub struct SwitchingStateSpaceModelBuilder;
114
115impl SwitchingStateSpaceModelBuilder {
116 pub fn new(_n_regimes: usize, _state_dim: usize) -> Self {
117 Self
118 }
119
120 pub fn build(self) -> SwitchingStateSpaceModel {
121 SwitchingStateSpaceModel
123 }
124}
125
126#[derive(Debug, Clone)]
128pub struct TemporalGaussianMixture;
129
130#[derive(Debug, Clone)]
132pub struct TemporalGaussianMixtureTrained;
133
134#[derive(Debug, Clone)]
136pub struct TemporalGaussianMixtureBuilder;
137
138impl TemporalGaussianMixtureBuilder {
139 pub fn new(_n_components: usize) -> Self {
140 Self
141 }
142
143 pub fn build(self) -> TemporalGaussianMixture {
144 TemporalGaussianMixture
146 }
147}
148
149#[derive(Debug, Clone, PartialEq)]
151pub enum ParameterEvolution {
152 RandomWalk,
154 AR1,
156 LocalLevel,
158}
159
160#[derive(Debug, Clone)]
162pub struct DynamicMixture;
163
164#[derive(Debug, Clone)]
166pub struct DynamicMixtureTrained;
167
168#[derive(Debug, Clone)]
170pub struct DynamicMixtureBuilder;
171
172impl DynamicMixtureBuilder {
173 pub fn new(_n_components: usize) -> Self {
174 Self
175 }
176
177 pub fn build(self) -> DynamicMixture {
178 DynamicMixture
180 }
181}