@@ -71,7 +71,9 @@ def initialize(self, key=jr.PRNGKey(0),
7171 if method .lower () == "kmeans" :
7272 assert emissions is not None , "Need emissions to initialize the model with K-Means!"
7373 from sklearn .cluster import KMeans
74- km = KMeans (self .num_states ).fit (emissions .reshape (- 1 , self .emission_dim ))
74+ key , subkey = jr .split (key ) # Create a random seed for SKLearn.
75+ sklearn_key = jr .randint (subkey , shape = (), minval = 0 , maxval = 2147483647 ) # Max int32 value.
76+ km = KMeans (self .num_states , random_state = int (sklearn_key )).fit (emissions .reshape (- 1 , self .emission_dim ))
7577
7678 _emission_means = jnp .array (km .cluster_centers_ )
7779 _emission_covs = jnp .tile (jnp .eye (self .emission_dim )[None , :, :], (self .num_states , 1 , 1 ))
@@ -167,7 +169,9 @@ def initialize(self, key=jr.PRNGKey(0),
167169 if method .lower () == "kmeans" :
168170 assert emissions is not None , "Need emissions to initialize the model with K-Means!"
169171 from sklearn .cluster import KMeans
170- km = KMeans (self .num_states ).fit (emissions .reshape (- 1 , self .emission_dim ))
172+ key , subkey = jr .split (key ) # Create a random seed for SKLearn.
173+ sklearn_key = jr .randint (subkey , shape = (), minval = 0 , maxval = 2147483647 ) # Max int32 value.
174+ km = KMeans (self .num_states , random_state = int (sklearn_key )).fit (emissions .reshape (- 1 , self .emission_dim ))
171175 _emission_means = jnp .array (km .cluster_centers_ )
172176 _emission_scale_diags = jnp .ones ((self .num_states , self .emission_dim ))
173177
@@ -286,7 +290,9 @@ def initialize(self, key=jr.PRNGKey(0),
286290 if method .lower () == "kmeans" :
287291 assert emissions is not None , "Need emissions to initialize the model with K-Means!"
288292 from sklearn .cluster import KMeans
289- km = KMeans (self .num_states ).fit (emissions .reshape (- 1 , self .emission_dim ))
293+ key , subkey = jr .split (key ) # Create a random seed for SKLearn.
294+ sklearn_key = jr .randint (subkey , shape = (), minval = 0 , maxval = 2147483647 ) # Max int32 value.
295+ km = KMeans (self .num_states , random_state = int (sklearn_key )).fit (emissions .reshape (- 1 , self .emission_dim ))
290296 _emission_means = jnp .array (km .cluster_centers_ )
291297 _emission_scales = jnp .ones ((self .num_states ,))
292298
@@ -386,7 +392,9 @@ def initialize(self, key=jr.PRNGKey(0),
386392 if method .lower () == "kmeans" :
387393 assert emissions is not None , "Need emissions to initialize the model with K-Means!"
388394 from sklearn .cluster import KMeans
389- km = KMeans (self .num_states ).fit (emissions .reshape (- 1 , self .emission_dim ))
395+ key , subkey = jr .split (key ) # Create a random seed for SKLearn.
396+ sklearn_key = jr .randint (subkey , shape = (), minval = 0 , maxval = 2147483647 ) # Max int32 value.
397+ km = KMeans (self .num_states , random_state = int (sklearn_key )).fit (emissions .reshape (- 1 , self .emission_dim ))
390398 _emission_means = jnp .array (km .cluster_centers_ )
391399 _emission_cov = jnp .eye (self .emission_dim )
392400
@@ -506,7 +514,9 @@ def initialize(self, key=jr.PRNGKey(0),
506514 if method .lower () == "kmeans" :
507515 assert emissions is not None , "Need emissions to initialize the model with K-Means!"
508516 from sklearn .cluster import KMeans
509- km = KMeans (self .num_states ).fit (emissions .reshape (- 1 , self .emission_dim ))
517+ key , subkey = jr .split (key ) # Create a random seed for SKLearn.
518+ sklearn_key = jr .randint (subkey , shape = (), minval = 0 , maxval = 2147483647 ) # Max int32 value.
519+ km = KMeans (self .num_states , random_state = int (sklearn_key )).fit (emissions .reshape (- 1 , self .emission_dim ))
510520 _emission_means = jnp .array (km .cluster_centers_ )
511521 _emission_cov_diag_factors = jnp .ones ((self .num_states , self .emission_dim ))
512522 _emission_cov_low_rank_factors = jnp .zeros ((self .num_states , self .emission_dim , self .emission_rank ))
0 commit comments