# plot(data[18:, :], 'primary cells', 'blue') #plot(data[15, :], 'cell M-67', 'black') #plot(data[35:, :], 'cell P-8', 'blue') np.random.seed(1) l = 808 y = np.zeros(36, dtype=int) M = 2 S = 3 lengths = (np.ones(36, dtype=int) * l).tolist() mhmm = spamhmm_orthogonal_init_B.SpaMHMM(epsilon=0, n_nodes=1, mix_dim=M, n_components=S, n_features=l, graph=None, n_iter=100, verbose=True, name='mhmm') mhmm.fit(data.flatten()[:, np.newaxis], y, lengths) pi_nk, transitions = mhmm._compute_mixture_posteriors( data.flatten()[:, np.newaxis], y, lengths) print(transitions.reshape(M, S, S)) print(np.exp(pi_nk)) predicted_cluster = [] label = [ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0,
np.random.seed(1) num_of_cells = len(data[:, 0]) l = 16 y = np.zeros(num_of_cells, dtype=int) M = 2 S = 2 # 2: 2 iter oMHMM, 5 iter MHMM; 4: 5 iter oMHMM, 30 iter MHMM lengths = (np.ones(num_of_cells, dtype=int) * l).tolist() ################################################################################################### mhmm = oMHMM.SpaMHMM(epsilon=.0000001, n_nodes=1, mix_dim=M, n_components=S, n_features=l, graph=None, n_iter=100, verbose=True, name='mhmm') mhmm.fit(data.flatten()[:, np.newaxis], y, lengths) pi_nk, transitions = mhmm._compute_mixture_posteriors( data.flatten()[:, np.newaxis], y, lengths) print(transitions.reshape(M, S, S)) print(np.exp(pi_nk)) predicted_cluster = [] label_0 = [0 for i in range(len(data1[:, 0]))] label_1 = [1 for i in range(len(data2[:, 0]))]
cell = np.float64(pi_nk[n]) truth = np.float64(pi[n]) predicted_cluster = np.append(predicted_cluster, np.where(cell == max(cell))[0][0]) label = np.append(label, np.where(truth == max(truth))[0][0]) print(label) print(predicted_cluster) v_measure = v_measure_score(label, predicted_cluster) print(transitions.reshape(M, num_of_states, num_of_states)) print(np.exp(pi_nk)) mhmm = spamhmm_orthogonal_init_B.SpaMHMM(n_nodes=1, epsilon=0, mix_dim=M, n_components=num_of_states, n_features=seq_len, graph=None, n_iter=100, verbose=True, name='mhmm') mhmm.fit(data.flatten()[:, np.newaxis], y, lengths) pi_nk2, transitions = mhmm._compute_mixture_posteriors( data.flatten()[:, np.newaxis], y, lengths) predicted_cluster2 = [] label2 = [] for n in range(num_of_cells): cell = np.float64(pi_nk2[n]) truth = np.float64(pi[n]) predicted_cluster2 = np.append(predicted_cluster2, np.where(cell == max(cell))[0][0]) label2 = np.append(label2, np.where(truth == max(truth))[0][0])