#This main function has not been maintained and is probably crashy and unreliable, it's here for legacy only. if __name__ == "__main__": weightFactors = [0.15] #Old phone data import #namecols = [0] #timecols = [2] #valcols = [2,3,4,5,6,7,8,9,10,11,12,13,14] #parser = Parser("AllPhoneData_pruned.csv",namecols,timecols,valcols) namecols = [0] timecols = [2] valcols = range(2,15) contours = 4 parser = Parser("AllPhoneData_pruned.csv",namecols,timecols,valcols) properties = parser.getProperties()[0:2] for ind_attr in properties: for dep_attr in properties: if ind_attr == dep_attr: continue ods = [] for w in weightFactors: ods.append(ObservedDistribution(parser, ind_attr, contours, dep_attr, w)) # Plotting code #fig = OD.plotArtefacts() #fig = OD.plotObservedContours(plot=fig, alpha=.9) #fig.set_title(str(w)) #fig.set_xlabel(ind_attr)
fig.set_ylabel("Surprise (ignore sign)") #print 'Surprisingness = ',round(surprise,3),', raw = ',abs(round(raw_surprise,3)) return surprise,raw_surprise ''' #This main function has not been maintained and is probably crashy and unreliable, it's here for legacy only. if __name__ == "__main__": mpl.rc('figure',figsize=[9, 6]) mpl.rc('figure.subplot',left=0.05,right=0.995,top=0.995,bottom=0.05) contours = 6 namecols = [1,2] timecols = [11] valcols = [3,4,5,6,7,8,9,11] parser = Parser("prunedPhones.csv",namecols,timecols,valcols) #Get either every dimension or a single dimension val1s = [parser.getProperties()[0]] val2s = [parser.getProperties()[1]] weightFactors = [0.2] Cs = [20] gammas = [0.2] #''' od = ObservedDistribution(parser, val1s[0], contours, val2s[0], weightFactors[0]) ed = ExpectedDistribution(od,parallel=False) edv = ExpectedDistributionVisualiser(ed,od,50,50) fig = od.plotObservedContours(title='', alpha=0.25)
#fig=edv.plotSurpriseGradient() fig = od.plotArtefacts(stroke='black',fill='white') edv.plotExpectationContours(plot=fig,showDU=True,showMU=True) #edv.plotUncertaintyChannel(onMedian=False,plot=pl.gcf().add_subplot(14,1,14)) edv.save(fn) if __name__ == "__main__": mpl.rc('figure',figsize=[18, 12]) mpl.rc('figure.subplot',left=0.075,right=0.995,top=0.925,bottom=0.075) contours = 3 namecols = [0] timecols = [2] valcols = range(2,15) parser = Parser("data/AllPhoneData_pruned.csv",namecols,timecols,valcols) # Values to start the search with Cs = {} Cs['Release Year'] = 1 Cs['RAM Capacity (Mb)'] = 1 Cs['ROM Capacity (Mb)'] = 1 Cs['Storage (Mb)'] = 1 Cs['CPU Clock (MHz)'] = 1 Cs['Display Diagonal (in)'] = 1 Cs['Display Width(px)'] = 1 Cs['Display Length(px)'] = 1 Cs['Width (mm)'] = 1 Cs['Length (mm)'] = 1 Cs['Depth (mm)'] = 1
def plotThings(updater): fig = updater.plotArtefacts() fig = updater.plotObservedContours(plot=fig, alpha=.9) fig.set_title(str(w)) fig.set_xlabel(ind_attr) fig.set_ylabel(dep_attr) if __name__ == "__main__": weightFactors = [.15] condition_train = lambda inst: inst.time < 2001 condition_test = lambda inst: inst.time >= 2001 namecols = [0] timecols = [2] valcols = [2,3,4,5,6,7,8,9,10,11,12,13,14] parser_train = Parser("data/AllPhoneData_pruned.csv",namecols,timecols,valcols,condition_train) parser_test = Parser("data/AllPhoneData_pruned.csv",namecols,timecols,valcols,condition_test) contours = 6 properties = parser_train.getProperties() for ind_attr in [properties[0]]: for dep_attr in [properties[-1]]: if ind_attr == dep_attr: continue for w in weightFactors: updater = Updater(parser_train, ind_attr, contours, dep_attr, w, parser_test=parser_test, prefix="ods/") plotThings(updater) updater.update(2001) plotThings(updater) updater.show()
def findFile(namestart, parser, prefix='.', dir_name='.'): for f in os.listdir(prefix): fn, ext = os.path.splitext(f) if ext == ".cbwb" and fn.startswith(namestart): index = int(fn.strip(namestart)) print "Found",f,"and setting index to", index if not parser is None: parser.index = index + 1 return readObject(prefix+'/'+f) return Node(directory=dir_name) if __name__ == "__main__": # Read in Data namecols = [0] timecols = [2] valcols = [9] parser = Parser("AllPhoneData_pruned.csv",namecols,timecols,valcols,normalize=True) #t = readObject('test.cbwb') t = findFile('test_', parser) old_index = parser.index while not parser.atEnd(): addInc(t, parser.getNext()) if parser.index >= old_index * 2: t.saveObject('test_'+str(parser.index)+'.cbwb', remove='test_'+str(old_index)+'.cbwb') old_index = parser.index t.viz.plotClusters('time', Instance.properties[0], depth=2) t.saveObject('test.cbwb')