From: Aaron A. <aa...@us...> - 2008-01-19 04:13:53
|
Update of /cvsroot/jboost/jboost/scripts In directory sc8-pr-cvs6.sourceforge.net:/tmp/cvs-serv30878 Modified Files: surfing.py Log Message: plot the symetric cost surfing graph Index: surfing.py =================================================================== RCS file: /cvsroot/jboost/jboost/scripts/surfing.py,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** surfing.py 23 Oct 2007 23:52:26 -0000 1.4 --- surfing.py 19 Jan 2008 04:13:49 -0000 1.5 *************** *** 39,43 **** def get_weight_line(params, start, end, max_bin): weights = [] ! s = c= c1 = c2 = theta = 0 confidence = False if(params[0] == 'BrownBoost'): --- 39,43 ---- def get_weight_line(params, start, end, max_bin): weights = [] ! s = c = c1 = c2 = theta = 0 confidence = False if(params[0] == 'BrownBoost'): *************** *** 45,52 **** s = float(params[2]) #time remaining elif(params[0] == 'NormalBoost'): c = float(params[1]) ! s = c-float(params[2]) #time played ! start = -1.0 ! end = 1.0 c1 = float(params[3]) c2 = float(params[4]) --- 45,53 ---- s = float(params[2]) #time remaining elif(params[0] == 'NormalBoost'): + t = float(params[2]) # time left c = float(params[1]) ! if t < 0: ! t = 0 ! s = c-t #time played c1 = float(params[3]) c2 = float(params[4]) *************** *** 59,78 **** x = start for i in range(0,num_steps): ! mu = var = 0 ! if params[0] == 'BrownBoost': ! mu = -s ! var = c ! elif params[0] == 'NormalBoost': ! mu = theta - c1 * (math.exp(-s) - math.exp(-c)) ! var = c2 * (math.exp(-2*s) - math.exp(-2*c)) + 0.05 ! ! norm = 1 / math.sqrt(var*math.pi) ! y = math.exp(-math.pow(x-mu,2)/(var)) * max_bin ! p = (1 - erf((x-mu)/math.sqrt(var)))/2 ! if (confidence): ! p = min(2*p, 1) weights.append((x,y,p)) x += step - return weights --- 60,88 ---- x = start for i in range(0,num_steps): ! if params[0] == 'BrownBoost' or params[0] == 'NormalBoost': ! mu = var = 0 ! if s < 0: ! s = 0.0001 ! if params[0] == 'BrownBoost': ! mu = -s ! var = c ! elif params[0] == 'NormalBoost': ! mu = theta - c1 * (math.exp(-s) - math.exp(-c)) ! var = c2 * (math.exp(-2*s) - math.exp(-2*c)) + 0.02 ! ! norm = 1 / math.sqrt(var*math.pi) ! y = math.exp(-math.pow(x-mu,2)/(var)) * max_bin ! p = (1 - erf((x-mu)/math.sqrt(var)))/2 ! if (confidence): ! p = min(2*p, 1) ! elif params[0] == 'AdaBoost': ! y = math.exp(-x) ! p = y ! elif params[0] == 'LogLossBoost': ! y = 1.0/(1+math.exp(x)) ! p = math.log(1.0 + math.exp(-x)) ! weights.append((x,y,p)) x += step return weights *************** *** 159,166 **** epsoutlines.append('set terminal post\n') epsoutlines.append('set output \'surfing%05d.eps\'\n' % (iter)) ! epsoutlines.append('set title "'+ params[0] + ' ' + datafile + ' Surfing: Time Remaining ' + str(params[2]) + '" font "Times,20"\n') epsoutlines.append('set key left top\n') epsoutlines.append('set yzeroaxis lt -1\n') ! if params[0]=='NormalBoost': epsoutlines.append('set xrange [-1:1]\n') epsoutlines.append('set yrange [0:1]\n') --- 169,179 ---- epsoutlines.append('set terminal post\n') epsoutlines.append('set output \'surfing%05d.eps\'\n' % (iter)) ! if params[0] == 'BrownBoost' or params[0] == 'NormalBoost': ! epsoutlines.append('set title "'+ params[0] + ' ' + datafile + ' Surfing: Time Remaining ' + str(params[2]) + '" font "Times,20"\n') ! if params[0] == 'AdaBoost' or params[0] == 'LogLossBoost': ! epsoutlines.append('set title "'+ params[0] + ' ' + datafile + ' Surfing: Iteration ' + str(iter) + '" font "Times,20"\n') epsoutlines.append('set key left top\n') epsoutlines.append('set yzeroaxis lt -1\n') ! if params[0] == 'NormalBoost': epsoutlines.append('set xrange [-1:1]\n') epsoutlines.append('set yrange [0:1]\n') *************** *** 246,251 **** usage() sys.exit(2) ! if(booster==None or (booster!='NormalBoost' and booster!='BrownBoost')): ! print 'Only accepts `NormalBoost` and `BrownBoost` boost.' usage() sys.exit(2) --- 259,264 ---- usage() sys.exit(2) ! if(booster==None or (booster!='NormalBoost' and booster!='BrownBoost' and booster!='AdaBoost' and booster!='LogLossBoost')): ! print 'Only accepts the same boosters (capitilization and all) from JBoost.' usage() sys.exit(2) *************** *** 263,267 **** for iter in range(0, num_iterations+1, framerate): boost_params_str = string.split(data[iter*(num_elements+1)], SEPARATOR)[2].split('boosting_params=')[1] ! if (booster=='BrownBoost'): search_str = 'r=' total_time = boost_params_str[boost_params_str.index(search_str)+2 :].split(' ')[0] --- 276,280 ---- for iter in range(0, num_iterations+1, framerate): boost_params_str = string.split(data[iter*(num_elements+1)], SEPARATOR)[2].split('boosting_params=')[1] ! if booster=='BrownBoost': search_str = 'r=' total_time = boost_params_str[boost_params_str.index(search_str)+2 :].split(' ')[0] *************** *** 269,273 **** time_left = boost_params_str[boost_params_str.index(search_str)+2 :].split(' ')[0] params = ('BrownBoost', total_time, time_left) ! if (booster=='NormalBoost'): search_str = 'c=' total_time = boost_params_str[boost_params_str.index(search_str)+2 :].split(' ')[0] --- 282,286 ---- time_left = boost_params_str[boost_params_str.index(search_str)+2 :].split(' ')[0] params = ('BrownBoost', total_time, time_left) ! elif booster=='NormalBoost': search_str = 'c=' total_time = boost_params_str[boost_params_str.index(search_str)+2 :].split(' ')[0] *************** *** 280,283 **** --- 293,317 ---- search_str = 'theta=' theta = boost_params_str[boost_params_str.index(search_str)+len(search_str) :].split(' ')[0] + search_str = 'posc=' + posc = boost_params_str[boost_params_str.index(search_str)+len(search_str) :].split(' ')[0] + search_str = 'negc=' + negc = boost_params_str[boost_params_str.index(search_str)+len(search_str) :].split(' ')[0] + search_str = 'posc1=' + posc1 = boost_params_str[boost_params_str.index(search_str)+len(search_str) :].split(' ')[0] + search_str = 'negc1=' + negc1 = boost_params_str[boost_params_str.index(search_str)+len(search_str) :].split(' ')[0] + search_str = 'posc2=' + posc2 = boost_params_str[boost_params_str.index(search_str)+len(search_str) :].split(' ')[0] + search_str = 'negc2=' + negc2 = boost_params_str[boost_params_str.index(search_str)+len(search_str) :].split(' ')[0] + search_str = 'postheta=' + postheta = boost_params_str[boost_params_str.index(search_str)+len(search_str) :].split(' ')[0] + search_str = 'negtheta=' + negtheta = boost_params_str[boost_params_str.index(search_str)+len(search_str) :].split(' ')[0] + search_str = 'asymmetric=' + asymmetric = boost_params_str[boost_params_str.index(search_str)+len(search_str) :].split(' ')[0] + use_asym = False + if asymmetric == 'true' or asymmetric == 'True' or asymmetric == '1': + use_asym = True search_str = 'confidence=' confidence = boost_params_str[boost_params_str.index(search_str)+len(search_str) :].split(' ')[0] *************** *** 286,289 **** --- 320,325 ---- use_conf = True params = ('NormalBoost', total_time, time_left, c1, c2, theta, use_conf) + else: + params = (booster,) lines = [x for x in data[iter*(num_elements+1)+1:(iter+1)*(num_elements+1)]] write_gnuplot(lines, iter, datafile, params) |