1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
from math import log, exp
T = 100
N = 100
def kernel(t, mu):
return mu * exp(-mu * t)
def base_rate(t, lamb):
return lamb
def ll(crimes, weights, mu, lamb):
r = 0
for i, crime in enumerate(crimes):
t, v = crime
a = sum(weights[(u, v)] * kernel(t - s, mu) for s, u in crimes[:t])
r += log(base_rate(t, lamb) + a)
for j in range(N):
a = sum(weights[(u, v)] * kernel(T - s, mu) for s, u in crimes)
r -= log(a)
|