def test_HawkesKernelPowerLaw_pickle(self): """...Test pickling ability of HawkesKernelPowerLaw """ obj = HawkesKernelPowerLaw(0.1, 0.01, 1.2) pickled = pickle.loads(pickle.dumps(obj)) self.assertTrue(str(obj) == str(pickled)) np.testing.assert_array_equal(obj.get_values(self.random_times), obj.get_values(self.random_times))
def setUp(self): self.decay = 2 self.intensity = 3 self.hawkes_kernel_exp = HawkesKernelExp(self.intensity, self.decay) self.multiplier = 0.1 self.cutoff = 0.01 self.exponent = 1.2 self.support = 10000 self.hawkes_kernel_power_law = HawkesKernelPowerLaw( self.multiplier, self.cutoff, self.exponent, self.support)
def setUp(self): np.random.seed(28374) self.kernels = np.array([[HawkesKernel0(), HawkesKernelExp(0.1, 3)], [ HawkesKernelPowerLaw(0.2, 4, 2), HawkesKernelSumExp([0.1, 0.4], [3, 4]) ]]) self.baseline = np.random.rand(2)
def setUp(self): np.random.seed(28374) self.kernels = np.array([ [HawkesKernel0(), HawkesKernelExp(0.1, 3)], [HawkesKernelPowerLaw(0.2, 4, 2), HawkesKernelSumExp([0.1, 0.4], [3, 4])] ]) t_values = np.linspace(0, 10, 10) y_values = np.maximum(0.5 + np.sin(t_values), 0) self.time_func_kernel = HawkesKernelTimeFunc(t_values=t_values, y_values=y_values) self.baseline = np.random.rand(2)
def test_HawkesKernelPowerLaw_repr(self): """...Test HawkesKernelPowerLaw string in list representation """ multiplier = 0.1 cutoff = 0.01 exponent = 1.2 hawkes_kernel_power_law = HawkesKernelPowerLaw(multiplier, cutoff, exponent) self.assertEqual(str([hawkes_kernel_power_law]), "[0.1*(0.01+t)^(-1.2)]") multiplier = 0 cutoff = 0.01 exponent = 1.2 hawkes_kernel_power_law = HawkesKernelPowerLaw(multiplier, cutoff, exponent) self.assertEqual(str([hawkes_kernel_power_law]), "[0]") multiplier = 0.1 cutoff = 0.01 exponent = 0 hawkes_kernel_power_law = HawkesKernelPowerLaw(multiplier, cutoff, exponent) self.assertEqual(str([hawkes_kernel_power_law]), "[0.1]")
def test_HawkesKernelPowerLaw_str(self): """...Test HawkesKernelPowerLaw string representation """ multiplier = 0.1 cutoff = 0.01 exponent = 1.2 hawkes_kernel_power_law = HawkesKernelPowerLaw(multiplier, cutoff, exponent) self.assertEqual(str(hawkes_kernel_power_law), "0.1 * (0.01 + t)^(-1.2)") multiplier = 0 cutoff = 0.01 exponent = 1.2 hawkes_kernel_power_law = HawkesKernelPowerLaw(multiplier, cutoff, exponent) self.assertEqual(str(hawkes_kernel_power_law), "0") multiplier = 0.1 cutoff = 0.01 exponent = 0 hawkes_kernel_power_law = HawkesKernelPowerLaw(multiplier, cutoff, exponent) self.assertEqual(str(hawkes_kernel_power_law), "0.1")
class Test(unittest.TestCase): def setUp(self): self.decay = 2 self.intensity = 3 self.hawkes_kernel_exp = HawkesKernelExp(self.intensity, self.decay) self.multiplier = 0.1 self.cutoff = 0.01 self.exponent = 1.2 self.support = 10000 self.hawkes_kernel_power_law = HawkesKernelPowerLaw( self.multiplier, self.cutoff, self.exponent, self.support) def test_is_zero(self): """...Test is_zero method of HawkesKernel""" self.assertFalse(self.hawkes_kernel_exp.is_zero()) def test_get_support(self): """...Test get_support method of HawkesKernel""" self.assertEqual(self.hawkes_kernel_power_law.get_support(), self.support) def test_get_plot_support(self): """...Test get_plot_support method of HawkesKernel""" self.assertEqual(self.hawkes_kernel_exp.get_plot_support(), self.intensity / self.decay) def test_get_value(self): """...Test get_value method of HawkesKernel""" self.assertEqual(self.hawkes_kernel_exp.get_value(3), 0.014872513059998151) def test_get_values(self): """...Test get_values method of HawkesKernel""" t_values = np.arange(5, dtype=float) np.testing.assert_array_almost_equal( self.hawkes_kernel_exp.get_values(t_values), [6, 8.120117e-01, 1.098938e-01, 1.487251e-02, 2.012776e-03]) def test_get_norm(self): """...Test get_norm method of HawkesKernel""" self.assertEqual(self.hawkes_kernel_exp.get_norm(), self.intensity)
import numpy as np import matplotlib.pyplot as plt from tick.hawkes import HawkesKernel0, HawkesKernelExp, HawkesKernelPowerLaw, \ HawkesKernelTimeFunc kernel_0 = HawkesKernel0() kernel_exp = HawkesKernelExp(.7, 1.3) kernel_pl = HawkesKernelPowerLaw(.1, .2, 0.7) t_values = np.array([0, 1, 1.5, 1.8, 2.7]) y_values = np.array([0, .6, .34, .2, .1]) kernel_tf = HawkesKernelTimeFunc(t_values=t_values, y_values=y_values) kernels = [[kernel_0, kernel_exp], [kernel_pl, kernel_tf]] fig, ax = plt.subplots(2, 2, sharex=True, sharey=True, figsize=(10, 4)) t_values = np.linspace(0, 3, 100) for i in range(2): for j in range(2): ax[i, j].plot(t_values, kernels[i][j].get_values(t_values), label=kernels[i][j]) ax[i, j].legend() plt.show()
""" import numpy as np import matplotlib.pyplot as plt from tick.hawkes import SimuHawkes, HawkesKernelPowerLaw, HawkesConditionalLaw from tick.plot import plot_hawkes_kernels multiplier = np.array([0.012, 0.008, 0.004, 0.005]) cutoff = 0.0005 exponent = 1.3 support = 2000 hawkes = SimuHawkes(kernels=[[ HawkesKernelPowerLaw(multiplier[0], cutoff, exponent, support), HawkesKernelPowerLaw(multiplier[1], cutoff, exponent, support) ], [ HawkesKernelPowerLaw(multiplier[2], cutoff, exponent, support), HawkesKernelPowerLaw(multiplier[3], cutoff, exponent, support) ]], baseline=[0.05, 0.05], seed=382, verbose=False) hawkes.end_time = 50000 hawkes.simulate() e = HawkesConditionalLaw(claw_method="log",
from tick.hawkes import (SimuHawkes, SimuHawkesMulti, HawkesKernelExp, HawkesKernelTimeFunc, HawkesKernelPowerLaw, HawkesKernel0, HawkesSumGaussians) end_time = 1000 n_nodes = 2 n_realizations = 10 n_gaussians = 5 timestamps_list = [] kernel_timefunction = HawkesKernelTimeFunc( t_values=np.array([0., .7, 2.5, 3., 4.]), y_values=np.array([.3, .03, .03, .2, 0.])) kernels = [[HawkesKernelExp(.2, 2.), HawkesKernelPowerLaw(.2, .5, 1.3)], [HawkesKernel0(), kernel_timefunction]] hawkes = SimuHawkes(baseline=[.5, .2], kernels=kernels, end_time=end_time, verbose=False, seed=1039) multi = SimuHawkesMulti(hawkes, n_simulations=n_realizations) multi.simulate() learner = HawkesSumGaussians(n_gaussians, max_iter=10) learner.fit(multi.timestamps)
def test_HawkesKernelPowerLaw_strtex(self): """...Test HawkesKernelPowerLaw latex string representation """ multiplier = 0.1 cutoff = 0.01 exponent = 1.2 hawkes_kernel_power_law = HawkesKernelPowerLaw(multiplier, cutoff, exponent) self.assertEqual(hawkes_kernel_power_law.__strtex__(), "$0.1 (0.01+t)^{-1.2}$") multiplier = 0 cutoff = 0.01 exponent = 1.2 hawkes_kernel_power_law = HawkesKernelPowerLaw(multiplier, cutoff, exponent) self.assertEqual(hawkes_kernel_power_law.__strtex__(), "$0$") multiplier = 0.1 cutoff = 0.01 exponent = 0 hawkes_kernel_power_law = HawkesKernelPowerLaw(multiplier, cutoff, exponent) self.assertEqual(hawkes_kernel_power_law.__strtex__(), "$0.1$") multiplier = 1 cutoff = 0.01 exponent = 1.2 hawkes_kernel_power_law = HawkesKernelPowerLaw(multiplier, cutoff, exponent) self.assertEqual(hawkes_kernel_power_law.__strtex__(), "$(0.01+t)^{-1.2}$")
def setUp(self): self.multiplier = 0.1 self.cutoff = 0.01 self.exponent = 1.2 self.hawkes_kernel_power_law = HawkesKernelPowerLaw( self.multiplier, self.cutoff, self.exponent)