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()
Beispiel #2
0
@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()