From ee158d02d92c597a35bc2e8704a85989a547f0e4 Mon Sep 17 00:00:00 2001 From: Thibaut Horel Date: Mon, 14 Sep 2015 17:08:20 -0400 Subject: Getting read of old stuff --- hawkes/data.py | 20 +++++++++++----- hawkes/data2.py | 71 --------------------------------------------------------- hawkes/main.py | 11 --------- 3 files changed, 14 insertions(+), 88 deletions(-) delete mode 100644 hawkes/data2.py diff --git a/hawkes/data.py b/hawkes/data.py index 4d7744e..e5c33f8 100644 --- a/hawkes/data.py +++ b/hawkes/data.py @@ -2,6 +2,7 @@ from csv import DictReader import sys from itertools import product from cPickle import dump +from math import cos MAX_TIME = 3012 @@ -10,13 +11,18 @@ def parse(s): return None if s == "NA" else int(float(s)) +def fluctuation_int(t): + if t is None: + t = MAX_TIME + return t + 0.43 / 0.0172 * (cos(4.36) - cos(0.0172 * t + 4.36)) + + def load_nodes(filename): with open(filename) as fh: reader = DictReader(fh) d = {parse(row["name"]): parse(row["fatal_day"]) for row in reader} for n, t in d.iteritems(): - if t is None: - d[n] = MAX_TIME + d[n] = fluctuation_int(t) return d @@ -26,10 +32,12 @@ def load_edges(filename): with open(filename) as fh: reader = DictReader(fh) for row in reader: - fro, to, t, weight = map(parse, [row["from"], row["to"], - row["t1"], row["w1"]]) + fro, to, t, dist = map(parse, [row["from"], row["to"], + row["t1"], row["dist"]]) + if dist >= 2: + continue d = edges.get(fro, dict()) - d[to] = weight + d[to] = dist edges[fro] = d s = events.get(fro, set()) s.add(t) @@ -62,4 +70,4 @@ if __name__ == "__main__": nodes = load_nodes(sys.argv[1]) edges, events = load_edges(sys.argv[2]) event_edges = compute_event_edges(events, edges) - dump((nodes, edges, events, event_edges), open("data.pickle", "wb")) + dump((nodes, edges, events, event_edges), open("data-dist1.pickle", "wb")) diff --git a/hawkes/data2.py b/hawkes/data2.py deleted file mode 100644 index b8f83c9..0000000 --- a/hawkes/data2.py +++ /dev/null @@ -1,71 +0,0 @@ -from csv import DictReader -import sys -from itertools import product -from cPickle import dump -from math import cos - -MAX_TIME = 3012 - - -def parse(s): - return None if s == "NA" else int(float(s)) - - -def fluctuation_int(t): - if t is None: - t = MAX_TIME - return t + 0.43 / 0.0172 * (cos(4.36) - cos(0.0172 * t + 4.36)) - - -def load_nodes(filename): - with open(filename) as fh: - reader = DictReader(fh) - d = {parse(row["name"]): parse(row["fatal_day"]) for row in reader} - for n, t in d.iteritems(): - d[n] = fluctuation_int(t) - return d - - -def load_edges(filename): - events = {} - edges = {} - with open(filename) as fh: - reader = DictReader(fh) - for row in reader: - fro, to, t, dist = map(parse, [row["from"], row["to"], - row["t1"], row["dist"]]) - d = edges.get(fro, dict()) - d[to] = dist - edges[fro] = d - s = events.get(fro, set()) - s.add(t) - events[fro] = s - return edges, events - - -def compute_event_edges(events, edges): - event_edges = {} - - for fro in events: - for t in events[fro]: - event_edges[(fro, t)] = set() - - for fro in edges: - for to in edges[fro]: - try: - e1, e2 = events[fro], events[to] - except KeyError: - continue - for t1, t2 in product(e1, e2): - if t1 < t2: - s = event_edges[(to, t2)] - s.add((fro, t1, edges[fro][to])) - event_edges[(to, t2)] = s - return event_edges - - -if __name__ == "__main__": - nodes = load_nodes(sys.argv[1]) - edges, events = load_edges(sys.argv[2]) - event_edges = compute_event_edges(events, edges) - dump((nodes, edges, events, event_edges), open("data2.pickle", "wb")) diff --git a/hawkes/main.py b/hawkes/main.py index 40993a1..bc319cc 100644 --- a/hawkes/main.py +++ b/hawkes/main.py @@ -34,17 +34,6 @@ def iter_events(events): yield (n, t) -def ll_old(lamb, alpha, mu): - r1 = sum(log(lamb + sum(alpha * w * mu * exp(-mu * (t1 - t2)) - for (n2, t2, w) in s)) - for ((n1, t1), s) in event_edges.iteritems()) - r2 = sum(sum(alpha * w * (1 - exp(-mu * (nodes[n2] - t1))) - for n2, w in edges[n1].iteritems() if nodes[n2] > t1) - for (n1, t1) in iter_events(events)) - r3 = lamb * sum(nodes.itervalues()) - return -(r1 - r2 - r3) - - 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)) -- cgit v1.2.3-70-g09d2