def main(): #nr=input('Enter the dimension N of the square lattice -->') nr=4 reps=nr*nr # number of lattice sites # generate complete dataset (training_data,training_H,training_M)=mh.complete_dataset(reps) train_labels=mh.gen_train_labels(training_data, training_H, training_M) # compute frequesncies counter=collections.Counter(train_labels) val=counter.values() freq=np.array(val)/np.float(len(train_labels)) #partition into training 90% and testing 10% datasets #[train,test]=mh.partition(training_data,train_labels) #train_set=train[0] #train_y=train[1] #test_set=test[0] #test_y=test[1] #test_classes=np.unique(test_y) #train_classes=np.unique(train_y) #training=[] #testing=[] #for i in range(len(train_set)): #row=train_set[i] #training.append(np.hstack((row,train_y[i]))) #for i in range(len(test_set)): #row2=test_set[i] #testing.append(np.hstack((row2,test_y[i]))) #np.reshape(testing,(len(testing),17)) #np.reshape(training,(len(training),17)) #train2=sorted(training,key=itemgetter(-1)) #test2=sorted(testing,key=itemgetter(-1)) train=[] for i in range(len(training_data)): row2=training_data[i] train.append(np.hstack((row2,train_labels[i]))) np.reshape(train,(len(train),17)) train2=sorted(train,key=itemgetter(-1)) train_classes=np.unique(train_labels) epochs=2 train_res=get_MH_sampled_IDs(train2,train_classes,freq,epochs) for i in range(epochs): res=train_res[i] H=[] for j in range(len(res)): H.append(res[j][-2]) count=collections.Counter(H) ens=[] for k in np.sort(count.keys()): ens.append(count[k]) freq2=np.array(ens)/np.float(len(H)) # estimated fdrequencies of the ditribution freq1=freq2.tolist() print "energy values:", np.sort(count.keys()) print "frequencies:",freq1 #histogr(H) record(freq1)
def main(): #nr=input('Enter the dimension N of the square lattice -->') nr=4 reps=nr*nr # number of lattice sites # generate complete dataset (training_data,training_H,training_M)=mh.complete_dataset(reps) train_labels=mh.gen_train_labels(training_data, training_H, training_M) # compute frequesncies counter=collections.Counter(train_labels) val=counter.values() freq=np.array(val)/np.float(len(train_labels)) #partition into training 90% and testing 10% datasets [train,test]=mh.partition(training_data,train_labels) train_set=train[0] train_y=train[1] test_set=test[0] test_y=test[1] test_classes=np.unique(test_y) train_classes=np.unique(train_y) training=[] testing=[] for i in range(len(train_set)): row=train_set[i] training.append(np.hstack((row,train_y[i]))) for i in range(len(test_set)): row2=test_set[i] testing.append(np.hstack((row2,test_y[i]))) np.reshape(testing,(len(testing),17)) np.reshape(training,(len(training),17)) train2=sorted(training,key=itemgetter(-1)) test2=sorted(testing,key=itemgetter(-1)) print "Initial number of random seeds is set to 10" print "It yields a training dataset of 10,000 samples per temperature" print "The temperature range is set to [0.1 40.0] with step size 0.5" expr=input("Would you like to increase the training dataset size? 'y'/'n'") if expr=='y': r=input("Enter a factor (integer) by which to increase the sample size") elif expr=='n': r=1 else: r=1 train_res=get_MH_sampled_IDs(train2,train_classes,freq,r) test_res=get_MH_sampled_IDs(test2,test_classes,freq,1) write_to_csv(train_res, "training") write_to_csv(test_res, "testing")
def main(): nr=4 reps=nr*nr # number of lattice sites (training_data,training_H,training_M)=mh.complete_dataset(reps) calc(training_data,nr) output_filename='/home/nportman/UOIT_research/data/4by4.tar.gz' source_dir='/home/nportman/UOIT_research/data/4by4' make_tarfile(output_filename,source_dir)
def main(): nr=4 reps=nr*nr # number of lattice sites (training_data,training_H,training_M)=mh.complete_dataset(reps) classes=upsample(training_data,nr) # unique energy levels of the complete dataset prop_train=0.8 (train,test)=partition(training_data,training_H,prop_train) train_data=train[0] test_data=test[0] calc(train_data,classes,nr,1) # flag=1 for training calc(test_data,classes,nr,2) # flag=2 for testing
def main(): # MH algorithm sampling IDs in the complete space (complete, Hs, Ms)=complete_dataset(16) prob=compute_boltz_weights(Hs) print prob train_res=mh.get_MH_samples(complete) #train_labels=mh.gen_train_labels(complete, Hs, Ms) #train=[] #for i in range(len(complete)): # row2=complete[i] # train.append(np.hstack((row2,train_labels[i]))) #np.reshape(train,(len(train),17)) #train2=sorted(train,key=itemgetter(-1)) #train_classes=np.arange(0,len(levels),1) #temp=40.0 #train_res=get_MH_sampled_IDs(train2,train_classes,temp) H=[] for i in range(len(train_res)): H.append(train_res[i][-2]) histogr(H)
import gzip import cPickle import MH_dataset_generator as mh import ising_model_princeton2 as I import matplotlib.pyplot as plt from sklearn.tree import DecisionTreeClassifier from sklearn.decomposition import PCA from sklearn.preprocessing import scale from operator import itemgetter nr=input('Enter the dimension N of the square lattice -->') reps=nr*nr # number of lattice sites # generate complete dataset (training_data,training_H,training_M)=mh.complete_dataset(reps) train_labels=mh.gen_train_labels(training_data, training_H, training_M) #partition into training 90% and testing 10% datasets [train,test]=mh.partition(training_data,train_labels) train_set=train[0] train_y=train[1] test_set=test[0] test_y=test[1] training=[] testing=[] for i in range(len(train_set)): row=train_set[i] training.append(np.hstack((row,train_y[i]))) for i in range(len(test_set)): row2=test_set[i] testing.append(np.hstack((row2,test_y[i])))
def main(): nr = 4 reps = nr * nr # number of lattice sites (training_data, training_H, training_M) = mh.complete_dataset(reps) calc(training_data, nr)
import numpy as np import random import gzip import cPickle import MH_dataset_generator as mh from sklearn.tree import DecisionTreeClassifier from sklearn.decomposition import PCA from sklearn.preprocessing import scale nr=input('Enter the dimension N of the square lattice -->') reps=nr*nr # number of lattice sites # generate complete dataset (training_data,training_H,training_M)=mh.complete_dataset(reps) train_labels=mh.gen_train_labels(training_data, training_H, training_M) [train,test]=mh.partition(training_data,train_labels) train_set=train[0] train_y=train[1] test_set=test[0] test_y=test[1] train_data=mh.get_MH_samples(train_set) print "... Computed training dataset" test_data=mh.get_MH_samples(test_set) print "... Computed testing dataset" expr=input('Enter "H" for Hamiltonian energy estimation and "M" for magnetization -->') if expr=="H": train_labels=train_data[:,-2] # Hamiltonian test_labels=test_data[:,-2]