def main(): model = HMM() K = 3 Lambda = 0.1 student_list = pd.Series(range(5)) random_cluster = model.createRandomCluster(K, student_list, with_seed=True) print('init_cluster', random_cluster) obs_sequence = pd.Series([0, 1, 2, 3, 4]) # state_sequence = model.convertObsToStateSequence(obs_sequence, update_cluster) error_dict = model.getErrorRateMatrix(random_cluster, K, 0.1) switch_dict = model.getSwitchRateMatrix(K, Lambda) print(error_dict) print(switch_dict) forward_llk = model.forward(obs_sequence, K, error_dict, switch_dict) test_llk = model.logLikelihood(obs_sequence, K, error_dict, switch_dict) print('forward llk', forward_llk) print('llk', test_llk)
from HMM.Model import HMM import pandas as pd if __name__ == '__main__': # generate sim data model = HMM() Lambda = 0.2 epsilon = 0.01 K = 3 num_unique_students = 20 true_cluster_structure = model.createRandomCluster( K, pd.Series(range(num_unique_students)), with_seed=True) obs_seq_len = 100 sim_data = model.generateData(K, obs_seq_len, true_cluster_structure, epsilon, Lambda, seed=1) test_data = pd.DataFrame({'obs_seq': sim_data['sim_data']}) output_true_cluster_structure = pd.DataFrame( {'clust_struct': true_cluster_structure}) test_data.to_csv('python_sim_data_seed_1.csv', sep=',', index=False) output_true_cluster_structure.to_csv('python_cluster_structure_seed_1.csv', sep=',', index=False) # initialization init_cluster_structure = model.createRandomCluster(
from HMM.Model import HMM import pandas as pd if __name__ == '__main__': # generate sim data model = HMM() Lambda = 0.2 epsilon = 0.01 K = 3 num_unique_students = 20 true_cluster_structure = model.createRandomCluster(K, pd.Series(range(num_unique_students)), with_seed=True) obs_seq_len = 100 sim_data = model.generateData(K, obs_seq_len, true_cluster_structure, epsilon, Lambda, seed=1) test_data = pd.DataFrame({'obs_seq':sim_data['sim_data']}) output_true_cluster_structure = pd.DataFrame({'clust_struct':true_cluster_structure}) test_data.to_csv('python_sim_data_seed_1.csv', sep=',', index=False) output_true_cluster_structure.to_csv('python_cluster_structure_seed_1.csv', sep=',', index=False) # initialization init_cluster_structure = model.createRandomCluster(K, pd.Series(range(num_unique_students))) init_params = dict() init_params['Lambda'] = {'value': 0.1} init_params['epsilon'] = {'value': 0.1} init_params['cluster'] = {'value': true_cluster_structure} K = 2 num_iter = 10000 thin = 100 chain = model.singleChainMLE([sim_data['sim_data']], K, init_params)