diff options
| author | Thibaut Horel <thibaut.horel@gmail.com> | 2015-09-15 16:48:11 -0400 |
|---|---|---|
| committer | Thibaut Horel <thibaut.horel@gmail.com> | 2015-09-15 16:48:11 -0400 |
| commit | 6db9e7baeda21cd5d38f390cc84f91c3d23e054b (patch) | |
| tree | fecae5b709f86d7b193ec7f33127ba619d8f2692 /hawkes_experiments/cause.py | |
| parent | 959bd80bae991aca3fa4c43e2e2ae81ccf00b1a4 (diff) | |
| download | criminal_cascades-6db9e7baeda21cd5d38f390cc84f91c3d23e054b.tar.gz | |
Squared model
Diffstat (limited to 'hawkes_experiments/cause.py')
| -rw-r--r-- | hawkes_experiments/cause.py | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/hawkes_experiments/cause.py b/hawkes_experiments/cause.py index 800f699..711e34a 100644 --- a/hawkes_experiments/cause.py +++ b/hawkes_experiments/cause.py @@ -30,12 +30,13 @@ def cause(lamb, alpha, mu): fatal_droots += 1 continue background_rate = lamb * (1 + 0.43 * sin(0.0172 * t1 + 4.36)) - parents = sorted([(n2, t2, alpha / d * mu * exp(-mu * (t1 - t2)), d) + parents = sorted([(n2, t2, alpha / d ** 2 * mu * exp(-mu * (t1 - t2)), d) for (n2, t2, d) in s], reverse=True, key=lambda x: x[2]) parent_rate = sum(e[2] for e in parents) - # if sum(e[2] for e in prl[:1]) > br: - # G.add_edge((n1, t1), tuple(prl[0][:2])) + # if parents[0][2] > background_rate: + # G.add_edge(tuple(parents[0][:2]), (n1, t1), + # weight=parents[0][3]) if background_rate > parent_rate: roots += 1 if (n1, t1) in fatals: @@ -56,9 +57,9 @@ def analyze_graph(G): print "cascades: {0}, min: {1}, max: {2}, mean: {3}, median: {4}".format( len(csizes), np.min(csizes), np.max(csizes), np.mean(csizes), np.median(csizes)) - # counts = Counter(l) - # w = writer(open("components_dist.csv", "w")) - # w.writerows(counts.most_common()) + counts = Counter(csizes) + w = writer(open("components_dist.csv", "w")) + w.writerows(counts.most_common()) edges = list(G.edges_iter(data=True)) print "edges: {0}".format(len(edges)) times = [e[1][1] - e[0][1] for e in edges] @@ -68,14 +69,15 @@ def analyze_graph(G): print "distances, min: {0}, max: {1}, mean: {2}, median: {3}".format( np.min(distances), np.max(distances), np.mean(distances), np.median(distances)) - # e = writer(open("edges.csv", "w")) - # e.writerows(edges) + e = writer(open("edges.csv", "w")) + e.writerows((e[0][0], e[0][1], e[1][0], e[1][1], e[2]["weight"]) + for e in edges) if __name__ == "__main__": - nodes, edges, events, event_edges = load(open("data-dist1.pickle", "rb")) - lamb, alpha, mu = 1.86602117779e-05, 0.0433473674726, 0.00109325510695 - # lamb, alpha, mu = 1.87717287808e-05, 5.12006113875e+14, 4.20918377797e-20 + nodes, edges, events, event_edges = load(open("data-all.pickle", "rb")) + lamb, alpha, mu = 1.18909761267e-05, 0.00781529533133, 0.00373882477787 + print "mu: {0}, alpha: {1}, beta: {2}".format(lamb, alpha, mu) (droots, roots, infections, fatal_droots, fatal_roots, fatal_infections, G) = cause(lamb, alpha, mu) r = "events: {0}, droots: {1}, roots: {2}, infections: {3}, "\ |
