diff options
| author | Thibaut Horel <thibaut.horel@gmail.com> | 2015-09-14 22:45:10 -0400 |
|---|---|---|
| committer | Thibaut Horel <thibaut.horel@gmail.com> | 2015-09-14 22:45:10 -0400 |
| commit | 6fdfdbbc59f758459b9bcb992a950c99722e50c1 (patch) | |
| tree | 6332b50463da5ac70038d473aae28d8d170b6042 /hawkes/refine.py | |
| parent | 0cd7df0103230be0b73f888a6b5553440ef40d03 (diff) | |
| download | criminal_cascades-6fdfdbbc59f758459b9bcb992a950c99722e50c1.tar.gz | |
Update refine accordingly
Diffstat (limited to 'hawkes/refine.py')
| -rw-r--r-- | hawkes/refine.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/hawkes/refine.py b/hawkes/refine.py index 0c171bc..02bbe07 100644 --- a/hawkes/refine.py +++ b/hawkes/refine.py @@ -15,15 +15,23 @@ def inprod(a, b): return tuple(float(x * y) for x, y in zip(a, b)) +def approx(x): + if x > 1e-10: + return 1 - exp(-x) + else: + return 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)) for (n2, t2, d) in s)) for ((n1, t1), s) in event_edges.iteritems()) - r2 = sum(sum(alpha / d * (1 - exp(-mu * (nodes[n2] - t1))) - for n2, d in edges[n1].iteritems() if nodes[n2] > t1) + r2 = sum(sum(alpha / d * 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(nodes.itervalues()) + r3 = lamb * sum(node[1] for node in nodes.itervalues()) return -(r1 - r2 - r3) @@ -58,5 +66,5 @@ def refine(): if __name__ == "__main__": - nodes, edges, events, event_edges = load(open("data-dist1.pickle", "rb")) + nodes, edges, events, event_edges = load(open("data-all.pickle", "rb")) refine() |
