Beispiel #1
0
	found = {}
	found[('Release Year','RAM Capacity (Mb)')] = {'C':1,'gamma':0.1}
	found[('Release Year','Pixel Density (per inch)')] = {'C':0.1,'gamma':0.01}

	
	defaults = {'C': 3,'gamma': 0.1}
	
	val1 = ['Release Year']
	val2 = ['Width (mm)']
	
	for v1 in val1:
		for v2 in val2:
			if v1 is not v2:
				start_time = time.time()
				print "Modelling",v1,"(independent) against",v2,"(dependent)."
				od = Updater(parser, v1, contours, v2, None)
				#fig = od.plotObservedContours()
				if (v1,v2) in found.keys():
					#ed = ExpectedDistribution(od,found[(v1,v2)])
					s = Surprise(od,params=found[(v1,v2)])
				else:
					#ed = ExpectedDistribution(od,defaults)
					s = Surprise(od,params=defaults)
				edv = s.createVisualiser(100,100) #ExpectedDistributionVisualiser(ed,od,None,50,20)
				edv.setLimits()
				#fig=edv.plotSurpriseGradient()
				fig=od.plotArtefacts(stroke='black',fill='black')
				#od.plotObservedContours(plot=fig)
				edv.plotExpectationContours(plot=fig,showDU=True,showMU=True)
				#edv.plotUncertaintyChannel(onMedian=False,plot=pl.gcf().add_subplot(14,1,14))
				fn = "".join(['-'.join([v1,v2,str(od.weight_std_ratio),str(s.params['C']),str(s.params['gamma']),'plotone.png'])])
Beispiel #2
0
	parser_test = Parser("data/AllPhoneData_pruned.csv",namecols,timecols,valcols,condition_test)
#	namecols = [1,2]
#	timecols = [11]
#	valcols = [3,4,5,6,7,8,9,11]
#	parser_train = Parser("prunedPhones.csv",namecols,timecols,valcols,condition_train)
#	parser_test = Parser("prunedPhones.csv",namecols,timecols,valcols,condition_test)
	contours = 4
	number_to_print = 5
	
	properties = parser_train.getProperties()
	gridlog = Log(sys.argv[1]) 
	for ind_attr in [properties[0]]:
		for dep_attr in properties[:]:
			if ind_attr == dep_attr:
				continue
			updater = Updater(parser_train, ind_attr, contours, dep_attr, None, parser_test=parser_test)
			surprise = None
			params = gridlog.getBestParams(ind_attr,dep_attr)
			if params is not None:
				print "Found",params,"for independent:",ind_attr,"dependent:",dep_attr
				surprise = Surprise(updater, params=params,lims=updater.allLimits([5,5]))
			else:
				print "Found no params in log for independent:",ind_attr,"dependent:",dep_attr,", using defaults"
				surprise = Surprise(updater, params={'C':1,'gamma':0.01},lims=updater.allLimits([5,5]))
			edv = surprise.createVisualiser(250,250)
			surprise_list = surprise.runUpdaterAndCalcSurprise(recompute=True, catchUp=False, plotAtUpdate=True)
			print 'least', surprise_list[0:number_to_print]
			print 'most', surprise_list[-number_to_print:-1] + [surprise_list[-1]]
			fn = "plots/Surprise_"+updater.indAttrName(True)+"_"+updater.depAttrName(True)
			subprocess.call("ffmpeg -b 5000 -f image2 -r 8 -i "+fn+"_%05d.jpg -vcodec libx264 -y "+fn+".mp4",shell=True)
			parser_train = Parser("data/AllPhoneData_pruned.csv",namecols,timecols,valcols,condition_train)
Beispiel #3
0
	mpl.rc('figure',figsize=[18, 12]) 
	mpl.rc('figure.subplot',left=0.05,right=0.995,top=0.995,bottom=0.05)
	
	namecols = [0]
	timecols = [2]
	valcols = [2,3,4,5,6,7,8,9,10,11,12,13,14]
	parser = Parser("data/AllPhoneData_pruned.csv",namecols,timecols,valcols)
	contours = 4
	
	properties = parser.getProperties()
	gridlog = Log(sys.argv[1]) 
	for ind_attr in properties:
		for dep_attr in properties:
			if ind_attr == dep_attr:
				continue
			updater = Updater(parser, ind_attr, contours, dep_attr, None)
			surprise = None
			params = gridlog.getBestParams(ind_attr,dep_attr)
			if params is not None:
				print "Found",params,"for independent:",ind_attr,"dependent:",dep_attr
				surprise = Surprise(updater, params=params,lims=updater.allLimits([5,5]))
			else:
				print "Found no params in log for independent:",ind_attr,"dependent:",dep_attr,", using defaults"
				surprise = Surprise(updater, params={'C':1,'gamma':0.01},lims=updater.allLimits([5,5]))
			edv = surprise.createVisualiser(250,100)
			fig=edv.plotSurpriseGradient()
			updater.plotArtefacts(plot=fig,stroke='black',fill='white')
			updater.plotObservedContours(plot=fig)
			edv.plotExpectationContours(plot=fig,showDU=True,showMU=True)
			fn = "".join(['-'.join([ind_attr,dep_attr,str(updater.weight_std_ratio),str(surprise.ed.params[0.5]['C']),str(surprise.ed.params[0.5]['gamma'])])+'_hires.png'])
			edv.save(fn)