def train(data, hmm): change = 1 Avgll = a.getAvgLL(data, hmm) while change > 1e-4: avgll = Avgll xi = getXi(data, hmm) hmm = reEstimation(xi, data) Avgll = a.getAvgLL(data, hmm) change = (Avgll - avgll) / abs(Avgll) # print "---------------" # print "current avgll\tformal avgll" # print str(Avgll)+"\t"+str(avgll) # print "avgll change ratio" # print change print "-----------------" print Avgll print hmm[0] print hmm[1] print hmm[2] print "-----------------" return hmm
def train(data, hmm): change=1 Avgll=a.getAvgLL(data, hmm) while change >10e-4: avgll=Avgll xi=getXi(data, hmm) hmm=reEstimation(xi, data) if checker.checkHmm(hmm)==False: print "$$$$$$$$$$$$$$$" print hmm[0] print hmm[1] print hmm[2] print "$$$$$$$$$$$$$$$" Avgll=a.getAvgLL(data, hmm) change=(Avgll-avgll)/abs(Avgll) print "---------------" print "new avgll\told avgll" print str(Avgll)+"\t"+str(avgll) print "avgll change ratio" print change return hmm