In [222]:
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
#from scipy import stats as st
import time
import glob
import ntpath
In [223]:
sys.path.append('/work/eng/eliavb/all_distance_sketch/src/proto/')
In [224]:
import cover_pb2
import ranking_pb2
In [225]:
def get_cover_gpb(cover_gpb):
cover = []
for seed_info in cover_gpb.seeds:
cover.append((seed_info.seed_node_id, len(seed_info.node_ids)))
return cover
In [226]:
def get_cover(file_name):
data = open(file_name, "rb").read()
cover_gpb = cover_pb2.CoverGpb()
cover_gpb.ParseFromString(data)
return get_cover_gpb(cover_gpb)
def get_cum_cover(file_name):
cover = get_cover(file_name)
cover_ranks = [cover_info[1] for cover_info in cover]
cover_ranks = sorted(cover_ranks, reverse=True)
cum_sum = np.cumsum(cover_ranks)
total = cum_sum[-1]
cum_sum_relative = [c / float(total) for c in cum_sum]
return cum_sum_relative
In [227]:
def get_K(file_name):
c_cum = get_cum_cover(file_name)
s_ = c_.split("_")
T = s_[-3]
K = s_[-2]
return int(K)
In [228]:
def plot_covers(glob_pattern, exact):
covers_ = glob.glob(glob_pattern)
max_len = 0
plt.plot(get_cum_cover(exact), label="exact")
for c_ in covers_:
c_cum = get_cum_cover(c_)
s_ = c_.split("_")
T = s_[-3]
K = s_[-2]
plt.plot(c_cum, label="T="+str(T) + " K="+K)
max_len = max(max_len, len(c_cum))
plt.xscale("log")
plt.legend()
fig = plt.gcf()
fig.set_size_inches(20.5, 10.5)
In [229]:
plot_covers("/work/eng/eliavb/experiments/youtube/cover/youtube_1000_100_*", "/work/eng/eliavb/experiments/youtube/cover/youtube_1000")
In [219]:
plot_covers("/work/eng/eliavb/experiments/youtube/cover/youtube_100_100_*", "/work/eng/eliavb/experiments/youtube/cover/youtube_100")
In [220]:
plot_covers("/work/eng/eliavb/experiments/youtube/cover/youtube_100_100_*", "/work/eng/eliavb/experiments/youtube/cover/youtube_100")
plot_covers("/work/eng/eliavb/experiments/youtube/cover/youtube_1000_100_*", "/work/eng/eliavb/experiments/youtube/cover/youtube_1000")
In [221]:
plot_covers("/work/eng/eliavb/experiments/youtube/cover/youtube_10000_100_*", "/work/eng/eliavb/experiments/youtube/cover/youtube_10000")
In [ ]: