def setUp(self): self.prng = np.random.RandomState(14) # TODO: remove fixed seeding self.n_unique = 2 self.n_lags = 2 self.startprob = np.array([0.6, 0.4]) self.transmat = np.array([[0.8, 0.2], [0.1, 0.9]]) self.var = np.array([0.1, 0.3]) self.alpha = np.array([0.8, 0.25]) self.shared_alpha = False self.mu = np.array([[0.7, -2.0, 0.1], [-0.7, 2.0, -0, 1]]) self.precision = np.array([[[599, 394], [800, 834]], [[375, 353], [342, 353]]]) self.h = ar.ARTHMM(n_unique=self.n_unique, n_lags=self.n_lags, random_state=self.prng, n_features=3, shared_alpha=self.shared_alpha, verbose=False) self.h.precision_ = self.precision self.h.startprob_ = self.startprob self.h.transmat_ = self.transmat self.h.mu_ = self.mu self.h.var_ = self.var self.h.alpha_ = self.alpha
def setUp(self): self.prng = np.random.RandomState(14) # TODO: remove fixed seeding self.n_unique = 2 self.n_features = 2 self.n_lags = 2 self.startprob = np.array([0.6, 0.4]) self.transmat = np.array([[0.8, 0.2], [0.1, 0.9]]) self.mu = np.array([[5.6, 10.4], [-4.7, 1.2]]) self.alpha = np.array([[0.01, 0.2], [0.003, 0.004]]) self.precision = np.array([[[0.8, 0.1], [0.1, 0.5]], [[0.9, 0.3], [0.3, 0.8]]]) self.h = ar.ARTHMM(n_unique=self.n_unique, n_lags=self.n_lags, random_state=self.prng, n_features=self.n_features, shared_alpha=False, verbose=False, precision_bounds=np.array([-1e5, 1e5]), init_params='samt') self.h.precision_ = self.precision self.h.startprob_ = self.startprob self.h.transmat_ = self.transmat self.h.mu_ = self.mu self.h.alpha_ = self.alpha
def autohmm(data, target): ''' vals = np.diff(target['Target']) data = data[1:] data = np.column_stack([data, vals]) ''' vals = [] X_train, X_test, Y_train, Y_test = train_test_split(data, target['Target'], test_size=0.33, random_state=42) states = clustering(target) model = ar.ARTHMM(n_unique=len(states)) print len(Y_train), X_train.shape model.fit(X_train) #X_train.values for numpy array as lists of lists log_proba, state_seq = model.decode(X_test) print "state seq", len(state_seq), set(state_seq) path = state_seq prediction_state = np.argmax(model.transmat_[state_seq[-1], :]) prediction = np.mean( [state_seq[prediction_state], state_seq[prediction_state - 1]]) #prediction_state = np.argmax(a[path[-1],:]) #prediction = np.argmax(b[prediction_state,:]) vals.append(prediction) return state_seq, vals
def test_alpha_set_unique(): h = ar.ARTHMM(n_unique=2, n_tied=2, n_lags=3, shared_alpha=False) h.alpha_ = np.array([[0.1, 0.2, 0.5], [0.2, 0.5, 0.5]]) correct_alpha = np.array([[0.1, 0.2, 0.5], [0.1, 0.2, 0.5], [0.1, 0.2, 0.5], [0.2, 0.5, 0.5], [0.2, 0.5, 0.5], [0.2, 0.5, 0.5]]) assert_array_equal(h._alpha_, correct_alpha)
def setUp(self): self.prng = np.random.RandomState(14) # TODO: remove fixed seeding self.n_unique = 2 self.n_lags = 1 self.startprob = np.array([0.6, 0.4]) self.transmat = np.array([[0.8, 0.2], [0.1, 0.9]]) self.mu = np.array([2.0, -2.0]) self.var = np.array([0.1, 0.3]) self.alpha = np.array([0.8, 0.25]) self.shared_alpha = False self.h = ar.ARTHMM(n_unique=self.n_unique, n_lags=self.n_lags, random_state=self.prng, shared_alpha=self.shared_alpha, verbose=False) self.h.startprob_ = self.startprob self.h.transmat_ = self.transmat self.h.mu_ = self.mu self.h.var_ = self.var self.h.alpha_ = self.alpha
def setUp(self): self.prng = np.random.RandomState(14) # TODO: remove fixed seeding self.n_unique = 2 self.n_lags = 1 self.startprob = np.array([0.6, 0.4]) self.transmat = np.array([[0.8, 0.2], [0.1, 0.9]]) self.mu = np.array([[-2.0], [12.0]]) self.alpha = np.array([0.08, 0.02]) self.shared_alpha = False self.precision = np.array([[0.8], [0.9]]) self.h = ar.ARTHMM(n_unique=self.n_unique, n_lags=self.n_lags, random_state=self.prng, shared_alpha=self.shared_alpha, verbose=False, init_params='samt', precision_bounds=np.array([-1e5, 1e5])) self.h.startprob_ = self.startprob self.h.precision_ = self.precision self.h.transmat_ = self.transmat self.h.mu_ = self.mu self.h.alpha_ = self.alpha
def test_alpha_getter(): h = ar.ARTHMM(n_unique=2, n_tied=2, n_lags=3, shared_alpha=False) new_alpha = np.array([[0.1, 0.2, 0.5], [0.2, 0.5, 0.5]]) h.alpha_ = new_alpha assert_array_equal(h.alpha_, new_alpha)
def test_alpha_unequal_despite_tied(): with assert_raises(ValueError): h = ar.ARTHMM(n_unique=2, n_lags=1, shared_alpha=True) h.alpha_ = np.array([[0.1], [0.2]])
def test_alpha_wrong_nlags(): with assert_raises(ValueError): h = ar.ARTHMM(n_unique=2, n_lags=1, shared_alpha=False) h.alpha_ = np.array([[0.1, 0.2], [0.2, 0.2]])