def est_main(): numid2volume = {} click_items = load_click_items(numid2volume) pay_items = load_pay_items() click_sig2prob = stats_items(click_items, lambda x:x.item_volume, 'Click') #import pdb; pdb.set_trace() pay_sig2prob = stats_items(pay_items, lambda x:numid2volume.get(long(x.num_id), -1), 'Pay') header = ['num%s'%x for x in range(21)] + ["num%s-%s"%(x-9, x) for x in range(30,110,10)] + ["num%s-%s"%(x-49,x) for x in range(150,350,50)] + ['num%s-num%s'%(x-199,x) for x in range(400,1200,200)] sig2header = dict(zip(range(1,len(header)+1), header)) scales = [] scale_f = open(FLAGS.scale_output, "w") xindex = range(21) + range(30, 110, 10) + range(150,350,50) + range(400,1200,200) for i in range(1, 38): name = sig2header[i] if pay_sig2prob.get(i, -1) != -1 and click_sig2prob.get(i, -1) != -1: v = pay_sig2prob.get(i, -1) / click_sig2prob.get(i, -1) else: v = 0 #scales.append((i, v)) scales.append((xindex[i-1], v)) scale_f.write("%s : %s : %s : %s\n" % (name, click_sig2prob.get(i, -1), pay_sig2prob.get(i, -1), v)) g = gnuplot(FLAGS.plot_output) g.xlabel = 'signal' g.ylabel = 'scale' dataset = {0:{'xy_arr':scales}} g.plotline(dataset)
def stats_dist_diff(click_items, pay_items, splitter, key, numid2volumeprice): def_item = {'volume':-1, 'price':-1} fn_conv = lambda x:numid2volumeprice.get(long(x.num_id), def_item)[key] click_sig2prob = stats_items_dist(click_items, fn_conv, 'Click', splitter) pay_sig2prob = stats_items_dist(pay_items, fn_conv, 'Pay', splitter) #import pdb; pdb.set_trace() header = splitter.headers sig2header = dict(zip(range(1,len(header)+1), header)) scales = [] scale_f = open("%s_%s" % (key, FLAGS.scale_output), "w") #xindex = range(21) + range(30, 110, 10) + range(150,350,50) + range(400,1200,200) xindex = splitter.range_sum for i in range(1, len(splitter.headers)+1): name = sig2header[i] if pay_sig2prob.get(i, -1) != -1 and click_sig2prob.get(i, -1) != -1: v = pay_sig2prob.get(i, -1) / click_sig2prob.get(i, -1) else: v = 0 #scales.append((i, v)) scales.append((xindex[i-1], v)) scale_f.write("%s : %s : %s : %s\n" % (name, click_sig2prob.get(i, -1), pay_sig2prob.get(i, -1), v)) g = gnuplot("%s_%s" % (key, FLAGS.plot_output)) g.xlabel = 'signal' g.ylabel = 'scale' dataset = {0:{'xy_arr':scales}} g.plotline(dataset)
def stats_dist_diff(click_items, pay_items, splitter, key, numid2volumeprice): def_item = {'volume': -1, 'price': -1} fn_conv = lambda x: numid2volumeprice.get(long(x.num_id), def_item)[key] click_sig2prob = stats_items_dist(click_items, fn_conv, 'Click', splitter) pay_sig2prob = stats_items_dist(pay_items, fn_conv, 'Pay', splitter) #import pdb; pdb.set_trace() header = splitter.headers sig2header = dict(zip(range(1, len(header) + 1), header)) scales = [] scale_f = open("%s_%s" % (key, FLAGS.scale_output), "w") #xindex = range(21) + range(30, 110, 10) + range(150,350,50) + range(400,1200,200) xindex = splitter.range_sum for i in range(1, len(splitter.headers) + 1): name = sig2header[i] if pay_sig2prob.get(i, -1) != -1 and click_sig2prob.get(i, -1) != -1: v = pay_sig2prob.get(i, -1) / click_sig2prob.get(i, -1) else: v = 0 #scales.append((i, v)) scales.append((xindex[i - 1], v)) scale_f.write( "%s : %s : %s : %s\n" % (name, click_sig2prob.get(i, -1), pay_sig2prob.get(i, -1), v)) g = gnuplot("%s_%s" % (key, FLAGS.plot_output)) g.xlabel = 'signal' g.ylabel = 'scale' dataset = {0: {'xy_arr': scales}} g.plotline(dataset)
def est_main(): numid2volume = {} click_items = load_click_items(numid2volume) pay_items = load_pay_items() click_sig2prob = stats_items(click_items, lambda x: x.item_volume, 'Click') #import pdb; pdb.set_trace() pay_sig2prob = stats_items(pay_items, lambda x: numid2volume.get(long(x.num_id), -1), 'Pay') header = ['num%s' % x for x in range(21)] + [ "num%s-%s" % (x - 9, x) for x in range(30, 110, 10) ] + ["num%s-%s" % (x - 49, x) for x in range(150, 350, 50) ] + ['num%s-num%s' % (x - 199, x) for x in range(400, 1200, 200)] sig2header = dict(zip(range(1, len(header) + 1), header)) scales = [] scale_f = open(FLAGS.scale_output, "w") xindex = range(21) + range(30, 110, 10) + range(150, 350, 50) + range( 400, 1200, 200) for i in range(1, 38): name = sig2header[i] if pay_sig2prob.get(i, -1) != -1 and click_sig2prob.get(i, -1) != -1: v = pay_sig2prob.get(i, -1) / click_sig2prob.get(i, -1) else: v = 0 #scales.append((i, v)) scales.append((xindex[i - 1], v)) scale_f.write( "%s : %s : %s : %s\n" % (name, click_sig2prob.get(i, -1), pay_sig2prob.get(i, -1), v)) g = gnuplot(FLAGS.plot_output) g.xlabel = 'signal' g.ylabel = 'scale' dataset = {0: {'xy_arr': scales}} g.plotline(dataset)