def estimateAverageDegree(top = 10000, filename = None): steps = [] if filename: steps = rw.readStepsFromFile(filename, top) else: steps = rw.readSteps() deg = {k:v for k,v in degree.getDegree(withCount = True)} fest = open(data.ESITMATE_FILE, 'w') rd = 0.0 counter = 0.0 for tid in steps: d = deg[tid] if d == 0: continue counter += 1.0 rd += 1.0 / d est = counter / rd fest.write('%lf\n' % est) fest.close()
@printRunningTime def rse(steps, rankList): eachSize = len(steps) / SAMPLE_TIME / SAMPLE_COUNT outputs = [] for k in range(TOP): f = open('sample-%d.txt' % (k + 1), 'w') outputs.append(f) for i in range(1, SAMPLE_TIME + 1): size = eachSize * i print 'counting:', size for j in range(TOP): freq = count(steps[j * size : (j + 1) * size]) ranks = getRank(freq, rankList) for k, r in enumerate(ranks): outputs[k].write(str(r)) if j != TOP - 1: outputs[k].write(',') for output in outputs: output.write('\n') for output in outputs: output.close() if __name__ == '__main__': steps = rw.readSteps() rank = rank.getRank() rse(steps, rank[:TOP])
import rank import rw from collections import Counter fout = open('rank-1.txt', 'w') steps = rw.readSteps() size = len(steps) / 10000 tid = str(rank.getRank(1)[0]) for i in range(10000): print 'size', size * i counter = Counter([str(s) for s in steps[i * size:(i + 1) * size]]) rank = 0 count = 0 for r, item in enumerate(counter.most_common()): if item[0] == tid: rank = r + 1 count = item[1] print 'find' break fout.write('%d\t%d\n' % (rank, count)) fout.close()