def main(): lb, im = mnist.read(dataset="training") lbt, imt = mnist.read(dataset="testing") im = im.reshape((len(im),len(im[0])*len(im[0]))) imt = imt.reshape((len(imt),len(imt[0])*len(imt[0]))) im.astype(float) imt.astype(float) # validation set imv = im[:500] lbv = lb[:500] imtt = im[500:] lbtt = lb[500:] tag = np.zeros(len(lbv),dtype=int) if READ: sigma = [] mu = [] for i in range(10): ts = np.loadtxt('sigma'+str(i)+'.out') tm = np.loadtxt('mu'+str(i)+'.out') sigma.append(ts) mu.append(tm) sigma = np.array(sigma) mu = np.array(mu) sigma_inv = [] for i in range(len(sigma)): sigma_inv.append(np.linalg.inv(sigma[i])) sigma_inv = np.array(sigma_inv) else: data = zip(lbtt, imtt) datat = zip(lbv, imv) # group data into 10 groups data_grouped = [list(v) for l,v in groupby(sorted(data, key=lambda x:x[0]), lambda x:x[0])] sigma, mu = cov.cov(data_grouped, 10000) sigma = np.array(sigma) mu = np.array(mu) sigma_inv = [] for i in range(len(sigma)): sigma_inv.append(np.linalg.inv(sigma[i])) sigma_inv = np.array(sigma_inv) #print np.linalg.slogdet(sigma[0]) pi = class_prob(lb) cnt = 0 for imt_data in imv: p = -sys.maxint ind = -1 pj = class_gauss(imt_data, sigma, sigma_inv, mu) for j in range(len(pj)): temp = math.log(pi[j])+pj[j] if (p < temp): p = temp ind = j print lbv[cnt],':',ind if lbv[cnt] == ind: tag[cnt] = 1 cnt += 1 print 'hit:',sum(tag) print 'total:', len(tag) print 'miss rate:', 1.0-float(sum(tag))/len(tag)
def main(): f = 0.05 th = 6.27344414456 #f = 0.1 #th = 9.25216525759 #f = 0.15 #th = 12.6067380436 #f = 0.2 #th = 14.6211445211 lb, im = mnist.read(dataset="training") lbt, imt = mnist.read(dataset="testing") tested = len(lbt) tag = np.zeros(tested,dtype=int) im = im.reshape((len(im),len(im[0])*len(im[0]))) imt = imt.reshape((len(imt),len(imt[0])*len(imt[0]))) if READ: sigma = [] mu = [] for i in range(10): ts = np.loadtxt('sigma'+str(i)+'.out') tm = np.loadtxt('mu'+str(i)+'.out') sigma.append(ts) mu.append(tm) sigma = np.array(sigma) mu = np.array(mu) sigma_inv = [] for i in range(len(sigma)): sigma_inv.append(np.linalg.inv(sigma[i])) sigma_inv = np.array(sigma_inv) else: data = zip(lb, im) datat = zip(lbt, imt) # group data into 10 groups data_grouped = [list(v) for l,v in groupby(sorted(data, key=lambda x:x[0]), lambda x:x[0])] sigma, mu = cov.cov(data_grouped, 10000) sigma = np.array(sigma) mu = np.array(mu) sigma_inv = [] for i in range(len(sigma)): sigma_inv.append(np.linalg.inv(sigma[i])) sigma_inv = np.array(sigma_inv) #print np.linalg.slogdet(sigma[0]) pi = class_prob(lb) cnt = 0 ab = 0 for imt_data in imt: p = -sys.maxint p2 = -sys.maxint ind = -1 ind2 = -1 pj = class_gauss(imt_data, sigma, sigma_inv, mu) for j in range(len(pj)): temp = math.log(pi[j])+pj[j] if (p < temp): p = temp ind = j elif (p2 < temp): p2 = temp ind2 = j if (p-p2) < th: ab += 1 print lbt[cnt],':',ind, ':', p, '(abstain!)' else: print lbt[cnt],':',ind, ':', p if lbt[cnt] == ind: tag[cnt] = 1 cnt += 1 print 'hit:',sum(tag) print 'total:', len(tag) print 'abstain:', ab print 'miss rate:', 1.0-float(sum(tag))/(len(tag)-ab)
# -*- coding: utf-8 -*- """ Created on Mon Apr 2 22:18:07 2018 @author: Administrator """ import a, b, c, d, e, f, cov a.x1() b.x2() c.x3() d.x4() e.x5() f.x6() cov.cov()