diff options
Diffstat (limited to 'hawkes_experiments/main.py')
| -rw-r--r-- | hawkes_experiments/main.py | 34 |
1 files changed, 16 insertions, 18 deletions
diff --git a/hawkes_experiments/main.py b/hawkes_experiments/main.py index 8f30dcf..9ed4205 100644 --- a/hawkes_experiments/main.py +++ b/hawkes_experiments/main.py @@ -43,19 +43,18 @@ def approx(x): def ll(lamb, alpha, mu): r1 = sum(log(lamb * (1 + 0.43 * sin(0.0172 * t1 + 4.36)) - + sum(alpha / d * mu * exp(-mu * (t1 - t2)) + + sum(alpha / d ** 2* mu * exp(-mu * (t1 - t2)) for (n2, t2, d) in s)) for ((n1, t1), s) in event_edges.iteritems()) - r2 = sum(sum(alpha / d * approx(mu * (nodes[n2][0] - t1)) + r2 = sum(sum(alpha / d ** 2 * approx(mu * (nodes[n2][0] - t1)) for n2, d in edges[n1].iteritems() if nodes[n2][0] > t1) for (n1, t1) in iter_events(events)) r3 = lamb * sum(node[1] for node in nodes.itervalues()) - print r1, r2, r3 return -(r1 - r2 - r3) -def sa(x, y, z, sigma=0.5, niter=1000, fc=None): +def sa(x, y, z, sigma=0.5, niter=70, fc=None): T = 0.1 e = 1.1 if fc: @@ -82,7 +81,7 @@ def sa(x, y, z, sigma=0.5, niter=1000, fc=None): return y, z, fo -def optimize_with_sa(x, y, z, niter=10): +def optimize_with_sa(x, y, z, niter=4): def f(x): return ll(x, y, z) @@ -108,8 +107,8 @@ def optimize_with_gss(x, y, z, niter=5): return ll(x, y, z) for _ in xrange(niter): - y, fc = gss(g, 0, 1e50, tol=1e-10) - z, fc = gss(h, 0, 1e50, tol=1e-10) + y, fc = gss(g, 0, 1, tol=1e-10) + z, fc = gss(h, 0, 1, tol=1e-10) x, fc = gss(f, 0, 1e-3, tol=1e-10) print x, y, z, fc sys.stdout.flush() @@ -121,7 +120,7 @@ def coarse_search(): v = map(float, line.strip().split()) d[tuple(v[:3])] = v[3] p = Pool(5) - lamb = [20. ** i for i in range(-10, 0)] + lamb = [5e-6, 1e-5, 1.5e-5, 2e-5, 2.5e-5] alpha = [20. ** i for i in range(-15, 15)] mu = [20. ** i for i in range(-15, 15)] @@ -136,16 +135,15 @@ def coarse_search(): if __name__ == "__main__": - nodes, edges, events, event_edges = load(open("data-dist1.pickle", "rb")) - x = 1.25e-5 - y = 1.2e16 - z = 1.5e-20 - sa(x, y, z) - - # with open(sys.argv[1]) as fh: - # l = [map(float, line.strip().split()[:3]) for line in fh] - # for e in l: - # optimize_with_gss(*e) + nodes, edges, events, event_edges = load(open("data-all.pickle", "rb")) + x = 1.875e-5 + y = 6.1e14 + z = 3e-20 + # optimize_with_sa(1.25e-05, 2.048e+13, 9.1552734375e-20) + with open(sys.argv[1]) as fh: + l = [map(float, line.strip().split()[:3]) for line in fh] + for e in l: + optimize_with_gss(*e) # print ll(x, y, z) # coarse_search() |
