def testHMMs(inp_file="test_input.txt"):
inp_vals = map(float, open("test_input.txt","r").read().strip().split(','))
HMMs = pickle.load(open("trained_HMMs_saved.pkl","rb"))
codebooks = pickle.load(open("all_codebooks.pkl","rb"))
vs = pickle.load(open("size_mapping.pkl","rb"))
results = {}
for size in vs.keys():
# organize input data into vectors of particular size
c = 0
vecs = []
for i in range(len(inp_vals)/int(size)):
vecs.append(inp_vals[c:c+size])
c += size
#print vecs
# Vector Quantizing
n = len(vecs)
vq_seq = map(str,sp.vq(np.reshape(vecs,(n,size)), codebooks[size])[0])
if len(vq_seq) > 0:
diseases = vs[size]
for disease in diseases:
HMM_obj = HMM("initial.json")
HMM_obj.A = HMMs[disease]["A"]
HMM_obj.B = HMMs[disease]["B"]
HMM_obj.pi = HMMs[disease]["pi"]
prob = HMM_obj.forward_scaled(vq_seq)
results[disease] = math.exp(prob)
for i in HMMs.keys():
if not results.has_key(i):
results[i] = "Not Enough Data to Predict"
print "RESULTS:"
for dis in results.keys():
print dis.capitalize()+": "+str(results[dis])
评论列表
文章目录