def generate(m, n, dsizes, tsize, file_tager):
    start_time = time.time()
    # Create Hidden Markov Model randomly. 
    # m --- The number of hidden states
    # n --- The number of observation states
    model = HMM(m, n)
    # Generate training set
    for dsize in dsizes:
        training_seq = model.generate_train_data(dsize)
        training_filename = "train_" + file_tager + ("_%d.data" % dsize)
        np.savetxt(training_filename, [training_seq], delimiter=",", fmt="%d")
    # Generate test set
    test_seqs_F = model.generate_test_data(tsize, min_seq_len=4, max_seq_len=5)
    test_seqs_V = model.generate_test_data(tsize, min_seq_len=3, max_seq_len=50)

    test_seqs_F_filename = "test_" + file_tager + "_F.data"
    test_seqs_V_filename = "test_" + file_tager + "_V.data"

    with file(test_seqs_F_filename, "wb") as fout:
        writer = csv.writer(fout)
        for seq in test_seqs_F:
            writer.writerow(seq)

    with file(test_seqs_V_filename, "wb") as fout:
        writer = csv.writer(fout)
        for seq in test_seqs_V:
            writer.writerow(seq)
    end_time = time.time()
    pprint("Time used: %f seconds" % (end_time-start_time))
    # Save model to file 
    model_filename = "model_" + file_tager + ".npy"
    HMM.to_file(model_filename, model)    
Exemple #2
0
def generate(m, n, dsizes, tsize, file_tager):
    start_time = time.time()
    # Create Hidden Markov Model randomly.
    # m --- The number of hidden states
    # n --- The number of observation states
    model = HMM(m, n)
    # Generate training set
    for dsize in dsizes:
        training_seq = model.generate_train_data(dsize)
        training_filename = "train_" + file_tager + ("_%d.data" % dsize)
        np.savetxt(training_filename, [training_seq], delimiter=",", fmt="%d")
    # Generate test set
    test_seqs_F = model.generate_test_data(tsize, min_seq_len=4, max_seq_len=5)
    test_seqs_V = model.generate_test_data(tsize,
                                           min_seq_len=3,
                                           max_seq_len=50)

    test_seqs_F_filename = "test_" + file_tager + "_F.data"
    test_seqs_V_filename = "test_" + file_tager + "_V.data"

    with file(test_seqs_F_filename, "wb") as fout:
        writer = csv.writer(fout)
        for seq in test_seqs_F:
            writer.writerow(seq)

    with file(test_seqs_V_filename, "wb") as fout:
        writer = csv.writer(fout)
        for seq in test_seqs_V:
            writer.writerow(seq)
    end_time = time.time()
    pprint("Time used: %f seconds" % (end_time - start_time))
    # Save model to file
    model_filename = "model_" + file_tager + ".npy"
    HMM.to_file(model_filename, model)