From e4ab872dd2f40983e1bce96904fe22624c3afe71 Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:12:26 -0400 Subject: [PATCH 01/19] a Changes to be committed: new file: brainiak/brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt new file mode 100644 index 000000000..e69de29bb From 06c869a431109610e47d20dcf8e151373aabf5bd Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:20:44 -0400 Subject: [PATCH 02/19] deleted: brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt deleted file mode 100644 index e69de29bb..000000000 From ea7b002323214d7be758de4b398f723d24cc9dc9 Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:12:26 -0400 Subject: [PATCH 03/19] a Changes to be committed: new file: brainiak/brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt new file mode 100644 index 000000000..e69de29bb From ad3af51edc4e1193894525fa88c7531e45b068a4 Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:20:44 -0400 Subject: [PATCH 04/19] deleted: brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt deleted file mode 100644 index e69de29bb..000000000 From 66277e6e91dc6bc7d94845d17cdcb2aeb0cacd1f Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:12:26 -0400 Subject: [PATCH 05/19] a Changes to be committed: new file: brainiak/brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt new file mode 100644 index 000000000..e69de29bb From 1b6127ae18d5c9206fa9f314050ce8eaec487f44 Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:20:44 -0400 Subject: [PATCH 06/19] deleted: brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt deleted file mode 100644 index e69de29bb..000000000 From 4b1a794d0ca848d49ef0736c1656539c6793077d Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:12:26 -0400 Subject: [PATCH 07/19] a Changes to be committed: new file: brainiak/brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt new file mode 100644 index 000000000..e69de29bb From 2ded8dbee5c1eabd5130bf03c48b497f7184147d Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:20:44 -0400 Subject: [PATCH 08/19] deleted: brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt deleted file mode 100644 index e69de29bb..000000000 From 66ebf5f0da4d6dabd87a6f18f9b9c4057aee5180 Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:12:26 -0400 Subject: [PATCH 09/19] a Changes to be committed: new file: brainiak/brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt new file mode 100644 index 000000000..e69de29bb From 6a243448aa23d0562dc5136e2d5454ff0a268366 Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:20:44 -0400 Subject: [PATCH 10/19] deleted: brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt deleted file mode 100644 index e69de29bb..000000000 From 746f66e274006cc3847cc7d50d41fbb6def808e2 Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:12:26 -0400 Subject: [PATCH 11/19] a Changes to be committed: new file: brainiak/brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt new file mode 100644 index 000000000..e69de29bb From 9fad12b0f263dccf38f359c2d2698e926173a2dc Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:20:44 -0400 Subject: [PATCH 12/19] deleted: brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt deleted file mode 100644 index e69de29bb..000000000 From 92a199b893f22da0c4fce8970848d04ee03365ab Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:12:26 -0400 Subject: [PATCH 13/19] a Changes to be committed: new file: brainiak/brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt new file mode 100644 index 000000000..e69de29bb From 5265476bf8b323a2fbe57fad839271cd2aa5705c Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:20:44 -0400 Subject: [PATCH 14/19] deleted: brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt deleted file mode 100644 index e69de29bb..000000000 From 3acf09fb455222ab13280bc13200b03fe1945bb1 Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:12:26 -0400 Subject: [PATCH 15/19] a Changes to be committed: new file: brainiak/brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt new file mode 100644 index 000000000..e69de29bb From bc49c16ebc4e689025803d1c81305f7ded026671 Mon Sep 17 00:00:00 2001 From: lcnature Date: Fri, 2 Sep 2016 10:20:44 -0400 Subject: [PATCH 16/19] deleted: brsa/test.txt --- brainiak/brsa/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 brainiak/brsa/test.txt diff --git a/brainiak/brsa/test.txt b/brainiak/brsa/test.txt deleted file mode 100644 index e69de29bb..000000000 From dd053b04bbc45c5944696fd1a9c7de222b664733 Mon Sep 17 00:00:00 2001 From: Mingbo Cai Date: Thu, 13 Jul 2017 12:18:22 -0400 Subject: [PATCH 17/19] added all the changes --- brainiak/reprsimil/brsa.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/brainiak/reprsimil/brsa.py b/brainiak/reprsimil/brsa.py index a4a42e762..53e88c461 100755 --- a/brainiak/reprsimil/brsa.py +++ b/brainiak/reprsimil/brsa.py @@ -37,7 +37,6 @@ import logging import brainiak.utils.utils as utils import scipy.spatial.distance as spdist -warnings.filterwarnings('ignore') logger = logging.getLogger(__name__) @@ -141,8 +140,9 @@ class BRSA(BaseEstimator): We use 'BFGS' as a default. Users can try other optimizer coming with scipy.optimize.minimize, or a custom optimizer. - rand_seed : int, default: 0 - Seed for initializing the random number generator. + rand_seed : int, default: None + Seed for initializing the random number generator. If None + is provided, then seed is not reset. Attributes ---------- @@ -179,7 +179,8 @@ def __init__( self, n_iter=50, rank=None, GP_space=False, GP_inten=False, tol=2e-3, auto_nuisance=True, n_nureg=6, verbose=False, eta=0.0001, space_smooth_range=None, inten_smooth_range=None, - tau_range=10.0, init_iter=20, optimizer='BFGS', rand_seed=0): + tau_range=10.0, init_iter=20, optimizer='BFGS', + rand_seed=None): self.n_iter = n_iter self.rank = rank self.GP_space = GP_space @@ -372,6 +373,10 @@ def fit(self, X, design, nuisance=None, scan_onsets=None, coords=None, self.C_ = utils.cov2corr(self.U_) return self + def _reset_randomseed(self, rand_seed): + if not rand_seed is None: + np.random.seed(rand_seed) + # The following 2 functions _D_gen and _F_gen generate templates used # for constructing inverse of covariance matrix of AR(1) noise # The inverse of covarian matrix is @@ -686,7 +691,7 @@ def _fit_RSA_UV(self, X, Y, X0, n_C = np.size(X, axis=1) l_idx = np.tril_indices(n_C) - np.random.seed(self.rand_seed) + self._reset_randomseed(self.rand_seed) # setting random seed t_start = time.time() From 3f9831d7ef0a0865e64d85c354849884fb5b7092 Mon Sep 17 00:00:00 2001 From: Mingbo Cai Date: Thu, 13 Jul 2017 13:14:35 -0400 Subject: [PATCH 18/19] changed random_state behavior according to sklearn guideline --- brainiak/reprsimil/brsa.py | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/brainiak/reprsimil/brsa.py b/brainiak/reprsimil/brsa.py index 53e88c461..752613d74 100755 --- a/brainiak/reprsimil/brsa.py +++ b/brainiak/reprsimil/brsa.py @@ -30,10 +30,9 @@ import scipy import scipy.optimize import scipy.stats -import warnings import time from sklearn.base import BaseEstimator -from sklearn.utils import assert_all_finite +from sklearn.utils import assert_all_finite, check_random_state import logging import brainiak.utils.utils as utils import scipy.spatial.distance as spdist @@ -140,9 +139,11 @@ class BRSA(BaseEstimator): We use 'BFGS' as a default. Users can try other optimizer coming with scipy.optimize.minimize, or a custom optimizer. - rand_seed : int, default: None - Seed for initializing the random number generator. If None - is provided, then seed is not reset. + random_state : RandomState or an int seed. Default: None + A random number generator instance to define the state of + the random permutations generator whenever the module + needs to generate random number (e.g., initial parameter + of the Cholesky factor). Attributes ---------- @@ -180,7 +181,7 @@ def __init__( tol=2e-3, auto_nuisance=True, n_nureg=6, verbose=False, eta=0.0001, space_smooth_range=None, inten_smooth_range=None, tau_range=10.0, init_iter=20, optimizer='BFGS', - rand_seed=None): + random_state=None): self.n_iter = n_iter self.rank = rank self.GP_space = GP_space @@ -204,7 +205,7 @@ def __init__( # When imposing smoothness prior, fit the model without this # prior for this number of iterations. self.optimizer = optimizer - self.rand_seed = rand_seed + self.random_state = random_state return def fit(self, X, design, nuisance=None, scan_onsets=None, coords=None, @@ -373,10 +374,6 @@ def fit(self, X, design, nuisance=None, scan_onsets=None, coords=None, self.C_ = utils.cov2corr(self.U_) return self - def _reset_randomseed(self, rand_seed): - if not rand_seed is None: - np.random.seed(rand_seed) - # The following 2 functions _D_gen and _F_gen generate templates used # for constructing inverse of covariance matrix of AR(1) noise # The inverse of covarian matrix is @@ -691,7 +688,7 @@ def _fit_RSA_UV(self, X, Y, X0, n_C = np.size(X, axis=1) l_idx = np.tril_indices(n_C) - self._reset_randomseed(self.rand_seed) + self.random_state_ = check_random_state(self.random_state) # setting random seed t_start = time.time() @@ -937,7 +934,7 @@ def _initial_fit_singpara(self, XTX, XTDX, XTFX, # (3) random initialization - current_vec_U_chlsk_l = np.random.randn(n_l) + current_vec_U_chlsk_l = self.random_state_.randn(n_l) # vectorized version of L, Cholesky factor of U, the shared # covariance matrix of betas across voxels. From 65ad2726537a9a0a55bd354f4ba8a5ff2152f58c Mon Sep 17 00:00:00 2001 From: Mingbo Cai Date: Thu, 13 Jul 2017 14:50:10 -0400 Subject: [PATCH 19/19] add doc_string for random_state_ --- brainiak/reprsimil/brsa.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/brainiak/reprsimil/brsa.py b/brainiak/reprsimil/brsa.py index 752613d74..dd7ba6497 100755 --- a/brainiak/reprsimil/brsa.py +++ b/brainiak/reprsimil/brsa.py @@ -173,6 +173,8 @@ class BRSA(BaseEstimator): beta0_: array, shape=[n_nureg, voxels] The loading weights of each voxel for the shared time courses not captured by the design matrix. + random_state_: `RandomState` + Random number generator initialized using random_state. """