示例#1
0
文件: main.py 项目: adrienbrunet/HMM
    hmm.emissions[""][state] = 0.0


def get_precision(table):
    conteur = 0
    for index in range(len(table)):
        if table[index][1] == table[index][2]:
            conteur += 1
    precision = float(conteur)/(len(table))
    return precision

table = viterbi.determinerClassesAvecDonneeExternes(test_table, hmm.transitions[""], hmm.transitions, hmm.emissions)

print str(viterbi.get_precision(table)*100)[0:4]+"% correct"
print "on lance les reestimations:"

hmm.iterate()
table = viterbi.determinerClassesAvecDonneeExternes(test_table, hmm.transitions[""], hmm.transitions, hmm.emissions)
print str(get_precision(table)*100)[0:5]+"% correct"

hmm.iterate()
table = viterbi.determinerClassesAvecDonneeExternes(test_table, hmm.transitions[""], hmm.transitions, hmm.emissions)
print str(get_precision(table)*100)[0:5]+"% correct"

print "on applique une perturbation sur la matrice d'emission:"
hmm.perturbation(0.00001)
print str(viterbi.get_precision(table)*100)[0:4]+"% correct"
print "on itere a nouveau:"
hmm.iterate()
table = viterbi.determinerClassesAvecDonneeExternes(test_table, hmm.transitions[""], hmm.transitions, hmm.emissions)
print str(get_precision(table)*100)[0:5]+"% correct"