diff options
| author | Ben Green <ben@SEASITs-MacBook-Pro.local> | 2015-06-28 17:38:33 -0400 |
|---|---|---|
| committer | Ben Green <ben@SEASITs-MacBook-Pro.local> | 2015-06-28 17:38:33 -0400 |
| commit | 6e527bbf612465bf5d739b9652abc0165550993c (patch) | |
| tree | 9525bed16d9e4568747855afd84a03937090f1cb /experiments/ml3.pyx | |
| parent | 7167a81cfb8b872dd1547e5a8669004b191417db (diff) | |
| download | criminal_cascades-6e527bbf612465bf5d739b9652abc0165550993c.tar.gz | |
Worked on synthetic data recovery so we can tell how high the actual
infector is ranked among all potential parents. Cleaned up code for the
predicting victims benchmarking test.
Diffstat (limited to 'experiments/ml3.pyx')
| -rw-r--r-- | experiments/ml3.pyx | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/experiments/ml3.pyx b/experiments/ml3.pyx index faeda92..da993bc 100644 --- a/experiments/ml3.pyx +++ b/experiments/ml3.pyx @@ -6,7 +6,7 @@ from libc.math cimport log, exp DTYPE = np.float64 ctypedef np.float_t DTYPE_t -cdef DTYPE_t weight_success(int dist, int dt, DTYPE_t alpha, DTYPE_t delta, +cdef DTYPE_t weight_success(int dist, DTYPE_t dt, DTYPE_t alpha, DTYPE_t delta, DTYPE_t w1, DTYPE_t w2, DTYPE_t w3): """weight for successful infection, exponential time model""" cdef DTYPE_t structural, temporal, result @@ -15,7 +15,7 @@ cdef DTYPE_t weight_success(int dist, int dt, DTYPE_t alpha, DTYPE_t delta, result = log(structural) + temporal return result -cdef DTYPE_t weight_failure(int dist, int dt, DTYPE_t alpha, DTYPE_t delta, +cdef DTYPE_t weight_failure(int dist, DTYPE_t dt, DTYPE_t alpha, DTYPE_t delta, DTYPE_t w1, DTYPE_t w2, DTYPE_t w3): """weight for failed infection, exponential time model""" cdef DTYPE_t structural, temporal, result @@ -43,21 +43,20 @@ def ml3(dict root_victims, dict victims, dict non_victims, DTYPE_t age, # for each victim node i, compute the probability that all its parents # fail to infect it, also computes the probability that its most # likely parent infects it - failures = [weight_failure(dist, dt, alpha, delta, w1, w2, w3) + failures = [weight_failure(dist, dt/100., alpha, delta, w1, w2, w3) for (dist, dt, w1, w2, w3) in parents] probs_fail[i] = sum(failures) - successes = [weight_success(dist, dt, alpha, delta, w1, w2, w3) + successes = [weight_success(dist, dt/100., alpha, delta, w1, w2, w3) for (dist, dt, w1, w2, w3) in parents] dists = [dist for (dist, dt, w1, w2, w3) in parents] dts = [dt for (dist, dt, w1, w2, w3) in parents] # find parent that maximizes log(p) - log(\tilde{p}) # probs[i] = max(s - failures[l] for l, s in enumerate(successes)) - # probs[i] = 0. + probs[i] = float("-inf") for l, s in enumerate(successes): prob = s - failures[l] - if prob > -19.523275053840013: - isSeed[i] = 0 - probs[i] += prob + if prob > probs[i]: + probs[i] = prob parent_dists[i] = dists[l] parent_dts[i] = dts[l] # probs_fail[i] = failures[l] |
