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)
示例#3
0
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)
示例#4
0
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)