summaryrefslogtreecommitdiffstats
path: root/hawkes/refine.py
diff options
context:
space:
mode:
Diffstat (limited to 'hawkes/refine.py')
-rw-r--r--hawkes/refine.py70
1 files changed, 0 insertions, 70 deletions
diff --git a/hawkes/refine.py b/hawkes/refine.py
deleted file mode 100644
index 02bbe07..0000000
--- a/hawkes/refine.py
+++ /dev/null
@@ -1,70 +0,0 @@
-from cPickle import load
-from itertools import product
-from math import exp, log, sin
-import sys
-from multiprocessing import Pool
-
-
-def iter_events(events):
- for n, s in events.iteritems():
- for t in s:
- yield (n, t)
-
-
-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 * 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())
- return -(r1 - r2 - r3)
-
-
-def get_values():
- d = {}
- for line in open(sys.argv[1]):
- v = map(float, line.strip().split())
- d[tuple(v[:3])] = v[3]
- l = d.items()
- l.sort(key=lambda x: x[1])
- for line in open("refine.txt"):
- v = map(float, line.strip().split())
- d[tuple(v[:3])] = v[3]
- for a, _ in l[:100]:
- t = [1. / i for i in range(2, 4)] + [float(i) for i in range(1, 4)]
- for b in product(t, repeat=3):
- l, al, m = inprod(a, b)
- if (l, al, m) in d:
- continue
- yield (l, al, m)
-
-
-def refine():
- p = Pool(5)
-
- def aux(x):
- l, a, m = x
- print l, a, m, ll(l, a, m)
- sys.stdout.flush()
-
- p.map(aux, get_values())
-
-
-if __name__ == "__main__":
- nodes, edges, events, event_edges = load(open("data-all.pickle", "rb"))
- refine()