def fj(realizations, n, p, k, s): local_log = np.zeros((realizations, 11)) #Realizations for r in range(realizations): orig_data = gen_structure_data(n, p).flatten() variance = np.var(orig_data) data = orig_data.copy() #np.save('data.npy', data) t1 = time.time() pivots = vFisher(data, classes=k) t2 = time.time() fj_tss = get_tss(k, data, pivots) #Cleanup del data data = orig_data.copy() #data = np.load('data.npy') ####Ordered Sample#### t3 = time.time() sample = fj_generate_sample(data, pct=s, random=False) #Returns pivots in the sample, not pivots in the total - hence C-TSS is way off. fj_ordered = vFisher(sample, classes=k) t4 = time.time() data.sort() pivots = [] for cl in range(0, k - 1): pivots.append(np.where(data == sample[fj_ordered[cl]])[0][-1]) fj_ordered_tss = get_tss(k, data, pivots) #Cleanup del data data = orig_data.copy() #data = np.load('data.npy') ####Random Sample#### t5 = time.time() sample = fj_generate_sample(data, pct=s) fj_random = vFisher(sample, classes=k) t6 = time.time() data.sort() pivots = [] for cl in range(0, k - 1): pivots.append(np.where(data == sample[fj_random[cl]])[0][-1]) fj_random_tss = get_tss(k, data, pivots) log = [ n, k, p, s, variance, fj_tss, fj_random_tss, fj_ordered_tss, t2 - t1, t4 - t3, t6 - t5 ] log = map(str, log) local_log[r] = np.array(log) return local_log
def fj(realizations, n, p, k, s): local_log = np.zeros((realizations, 11)) #Realizations for r in range(realizations): orig_data = gen_structure_data(n,p).flatten() variance = np.var(orig_data) data = orig_data.copy() #np.save('data.npy', data) t1 = time.time() pivots = vFisher(data, classes=k) t2 = time.time() fj_tss = get_tss(k, data, pivots) #Cleanup del data data = orig_data.copy() #data = np.load('data.npy') ####Ordered Sample#### t3 = time.time() sample = fj_generate_sample(data, pct=s, random=False) #Returns pivots in the sample, not pivots in the total - hence C-TSS is way off. fj_ordered = vFisher(sample, classes=k) t4 = time.time() data.sort() pivots = [] for cl in range(0,k-1): pivots.append(np.where(data==sample[fj_ordered[cl]])[0][-1]) fj_ordered_tss = get_tss(k, data, pivots) #Cleanup del data data = orig_data.copy() #data = np.load('data.npy') ####Random Sample#### t5 = time.time() sample = fj_generate_sample(data, pct=s) fj_random = vFisher(sample, classes=k) t6 = time.time() data.sort() pivots = [] for cl in range(0,k-1): pivots.append(np.where(data==sample[fj_random[cl]])[0][-1]) fj_random_tss = get_tss(k, data, pivots) log = [n,k,p, s,variance, fj_tss, fj_random_tss, fj_ordered_tss, t2-t1, t4-t3, t6-t5] log = map(str, log) local_log[r] = np.array(log) return local_log
def fj(realizations, n, k, p): local_log = np.zeros((realizations, 28)) #Realizations for r in range(realizations): #Fully computed orig_data, variance = gen_structure_data(n, p) data = np.copy(orig_data).ravel() t1 = time.time() pivots = vFisher(data, classes=k) t2 = time.time() fj_time = t2 - t1 fj_tss = get_tss(k, data, pivots) del data #Quantiles data = np.copy(orig_data).ravel() t1 = time.time() quantiles = ps.esda.mapclassify.Quantiles(data, k=k) t2 = time.time() q_time = t2-t1 q_tss = quantiles.get_tss() ordered_time = np.empty(5) ordered_tss = np.empty(5) random_time = np.empty(5) random_tss = np.empty(5) #Since each sample size is a different method, compute those in a loop for i, s in enumerate([0.05, 0.1, 0.15, 0.2, 0.25]): del data data = np.copy(orig_data).ravel() ####Ordered Sample#### t3 = time.time() sample = fj_generate_sample(data, pct=s, random=False) #Returns pivots in the sample, not pivots in the total - hence C-TSS is way off. fj_ordered = vFisher(sample, classes=k) t4 = time.time() data.sort() pivots = [] for cl in range(0,k-1): pivots.append(np.where(data==sample[fj_ordered[cl]])[0][-1]) ordered_tss[i] = get_tss(k, data, pivots) ordered_time[i] = t4-t3 #Cleanup del data data = np.copy(orig_data).ravel() ####Random Sample#### t5 = time.time() sample = fj_generate_sample(data, pct=s) fj_random = vFisher(sample, classes=k) t6 = time.time() data.sort() pivots = [] for cl in range(0,k-1): pivots.append(np.where(data==sample[fj_random[cl]])[0][-1]) random_tss[i] = get_tss(k, data, pivots) random_time[i] = t6 - t5 sampled = np.hstack((ordered_tss,ordered_time, random_tss, random_time)) log = [n,k,p,variance, fj_tss, fj_time, q_tss, q_time] log = map(str, log) local_log[r] = np.hstack((np.array(log),sampled)) return local_log