From: Aaron A. <aa...@us...> - 2007-05-31 10:03:04
|
Update of /cvsroot/jboost/jboost/scripts In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv5926/scripts Modified Files: margin.py Log Message: now reads margins file Index: margin.py =================================================================== RCS file: /cvsroot/jboost/jboost/scripts/margin.py,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** margin.py 27 May 2007 03:57:27 -0000 1.5 --- margin.py 31 May 2007 10:03:00 -0000 1.6 *************** *** 10,14 **** def usage(): print 'Usage: margin.py ' ! print '\t--scores=filename scores file as output by jboost' print '\t--data=filename train/test filename' print '\t--spec=filename spec filename' --- 10,15 ---- def usage(): print 'Usage: margin.py ' ! print '\t--margins=filename margins file as output by jboost (-a -2 switch)' ! print '\t--scores=filename scores file as output by jboost (-a -2 switch)' print '\t--data=filename train/test filename' print '\t--spec=filename spec filename' *************** *** 76,92 **** ! def write_gnuplot(labels, scores_list, iters, datafile): margin_list = [] for i in range(len(iters)): scores = scores_list[i] ! margins = get_margins(labels, scores); margins.sort() margin_list.append(margins) lines = [] ! for w in range(len(margins)): line = "" ! line += str(float(w)/len(margins)) for i in range(len(margin_list)): margins = margin_list[i] --- 77,93 ---- ! def write_gnuplot(scores_list, iters, datafile): margin_list = [] for i in range(len(iters)): scores = scores_list[i] ! margins = scores_list[i] #get_margins(labels, scores); margins.sort() margin_list.append(margins) lines = [] ! for w in range(len(margin_list[0])): line = "" ! line += str(float(w)/len(margin_list[0])) for i in range(len(margin_list)): margins = margin_list[i] *************** *** 166,185 **** ! def process_data(examples, labels, scores, datafile, sample): print 'Examples ' + str(len(examples)) print 'Scores ' + str(len(scores)) ! print 'Labels ' + str(len(labels)) print 'Generating margins' - margins = get_margins(labels, scores) - - if len(examples) != len(margins): - print "Don't have margin for each example" - sys.exit(2) - print 'Matching margins with data' - #pos_label, neg_label = getLabels(specfile) --- 167,179 ---- ! def process_data(examples, labels, margins, scores, datafile, sample): print 'Examples ' + str(len(examples)) print 'Scores ' + str(len(scores)) ! print 'Margins ' + str(len(margins)) print 'Generating margins' print 'Matching margins with data' #pos_label, neg_label = getLabels(specfile) *************** *** 213,217 **** try: ! opts, args= getopt.getopt(sys.argv[1:], '', ['scores=','data=','spec=','labels=', 'iteration=', 'sample']) except getopt.GetoptError, inst: print 'Received an illegal argument:', inst --- 207,211 ---- try: ! opts, args= getopt.getopt(sys.argv[1:], '', ['margins=', 'scores=','data=','spec=','labels=', 'iteration=', 'sample']) except getopt.GetoptError, inst: print 'Received an illegal argument:', inst *************** *** 219,224 **** sys.exit(2) ! scoresfile = datafile = specfile = labelsfile = sample = iteration = None for opt,arg in opts: if (opt == '--scores'): scoresfile = arg --- 213,220 ---- sys.exit(2) ! marginsfile = scoresfile = datafile = specfile = labelsfile = sample = iteration = None for opt,arg in opts: + if (opt == '--margins'): + marginsfile = arg if (opt == '--scores'): scoresfile = arg *************** *** 235,239 **** ! if(scoresfile == None or datafile == None or specfile == None): print 'Need score, data, and spec file.' usage() --- 231,235 ---- ! if(marginsfile == None or scoresfile == None or datafile == None or specfile == None): print 'Need score, data, and spec file.' usage() *************** *** 262,290 **** data= f.readlines() f.close() ! elements= int((string.split(data[0],'='))[2]) print 'Reading labels' f= open(labelsfile,'r') ! labels= f.readlines()[-elements:] f.close() ! score_list = [] if (iteration != None): iters = map(int, iteration.split(',')) for iter in iters: ! scores= [float(x) for x in data[iter*(elements+1)+1:(iter+1)*(elements+1)]] ! score_list.append(scores) else: ! scores= [float(x) for x in data[-elements:]] ! score_list.append(scores) ! ! process_data(examples, labels, score_list[len(score_list)-1], datafile, sample) ! write_gnuplot(labels, score_list, iters, datafile) - if __name__ == "__main__": --- 258,295 ---- data= f.readlines() f.close() ! score_elements= int((string.split(data[0],'='))[2]) ! ! print 'Reading margin values' ! f= open(marginsfile,'r') ! data= f.readlines() ! f.close() ! margin_elements= int((string.split(data[0],'='))[2]) print 'Reading labels' f= open(labelsfile,'r') ! labels= f.readlines()[-score_elements:] f.close() + scores = [] + margin_list = [] ! iters = [1] ! iters[0] = len(data) / (margin_elements+1) if (iteration != None): iters = map(int, iteration.split(',')) for iter in iters: ! margins = [float(x) for x in data[iter*(margin_elements+1)+1:(iter+1)*(margin_elements+1)]] ! scores = [float(x) for x in data[iter*(score_elements+1)+1:(iter+1)*(score_elements+1)]] ! margin_list.append(margins) else: ! margins = [float(x) for x in data[-margin_elements:]] ! scores = [float(x) for x in data[-score_elements:]] ! margin_list.append(margins) ! process_data(examples, labels, margin_list[len(margin_list)-1], scores, datafile, sample) + write_gnuplot(margin_list, iters, datafile) if __name__ == "__main__": |