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()
|