From: Yoav F. <yf...@us...> - 2008-09-11 21:25:49
|
Update of /cvsroot/jboost/jboost/scripts In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv2628/scripts Modified Files: VisualizeScores.py Log Message: Visualizing fluctuations. Index: VisualizeScores.py =================================================================== RCS file: /cvsroot/jboost/jboost/scripts/VisualizeScores.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** VisualizeScores.py 11 Sep 2008 04:14:40 -0000 1.5 --- VisualizeScores.py 11 Sep 2008 21:25:45 -0000 1.6 *************** *** 82,87 **** highestScore = d.getMax() print "lowestScore=%f, highestScore=%f\n" % (lowestScore,highestScore) - v=HistogramFrame(d) - v.show() print len(exampleData) --- 82,85 ---- *************** *** 111,157 **** iterList.sort() ! fluctBins=10 fluct = {} for iter in iterList: ! fluct[iter] = [{"sum":0.0, "sumSquare":0.0, "count":0} for i in range(fluctBins)] ! for index in exampleData.keys(): ! for iter in iterList: testScore=exampleData[index]["scores"][iter]["test"] ! maxDiff=0 ! for trainScore in exampleData[index]["scores"][iter]["train"]: ! maxDiff = max(maxDiff,abs(trainScore-testScore)) ! exampleData[index]["scores"][iter]["maxDiff"]=maxDiff ! bin = int((testScore-lowestScore)/(highestScore-lowestScore)*fluctBins) bin = min(bin,fluctBins-1) ! fluct[iter][bin]["count"] += 1 ! fluct[iter][bin]["sum"] += maxDiff ! fluct[iter][bin]["sumSquare"] += maxDiff*maxDiff ! ! from math import sqrt ! step = (highestScore-lowestScore)/fluctBins ! for iter in iterList: ! print "iteration %d\n" % iter for bin in range(fluctBins): ! count = fluct[iter][bin]["count"] ! if count>0: ! mean = fluct[iter][bin]["sum"] / count ! meanSquare = fluct[iter][bin]["sumSquare"] / count ! std = sqrt(meanSquare-mean*mean) ! else: ! mean=0 ! std=0 ! fluct[iter][bin]["mean"]=mean ! fluct[iter][bin]["std"]=std ! fl=fluct[iter][bin] ! r=lowestScore + bin*step ! print "\t[%f,%f] count=%d, mean=%f, std=%f\n" % (r,r+step,count,mean,std) - #for index in range(5): - # print "%d: label=%d\n" % (index,exampleData[index]["label"]) - # for iterNo in iterList: - # print ("%d: " % iterNo) - # print exampleData[index]["scores"][iterNo] - --- 109,150 ---- iterList.sort() ! fluctBins=20 ! percentage=0.05 ! barHeight=6 ! binWidth = (highestScore-lowestScore)/fluctBins fluct = {} for iter in iterList: ! fluct[iter] = [ {"trainScores":[]} for i in range(fluctBins)] ! for iterNo in range(len(iterList)): ! iter = iterList[iterNo] ! print "iteration %d\n" % iter ! for index in exampleData.keys(): testScore=exampleData[index]["scores"][iter]["test"] ! bin = int((testScore-lowestScore)/binWidth) bin = min(bin,fluctBins-1) ! for trainScore in exampleData[index]["scores"][iter]["train"]: ! fluct[iter][bin]["trainScores"].append(trainScore) ! y=0 for bin in range(fluctBins): ! fluct[iter][bin]["trainScores"].sort() ! n=len(fluct[iter][bin]["trainScores"]) ! if n>10: ! bottom = fluct[iter][bin]["trainScores"][int(n*percentage)] ! top = fluct[iter][bin]["trainScores"][int(n*(1-percentage))] ! yMax = y ! yMin = y-barHeight ! y=y-1.1*barHeight ! fluct[iter][bin]["bottom"] = bottom ! fluct[iter][bin]["top"]=top ! fluct[iter][bin]["yMin"]=yMin ! fluct[iter][bin]["yMax"]=yMax ! ! print "[%f,%f] -> [%f,%f] X [%f,%f]\n" % (lowestScore+bin*binWidth,lowestScore+(bin+1)*binWidth,bottom,top,yMin,yMax) ! d.addFluctItems(iterNo, lowestScore+bin*binWidth, lowestScore+(bin+1)*binWidth, bottom, top, yMin, yMax) ! fluct[iter][bin]["trainScores"] = [] + v=HistogramFrame(d) + v.show() |