コード例 #1
0
    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))
コード例 #2
0
    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)
コード例 #3
0
    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)
コード例 #4
0
    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)
コード例 #5
0
    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]")
コード例 #6
0
    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")
コード例 #7
0
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)
コード例 #8
0
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()
コード例 #9
0
"""

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",
コード例 #10
0
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)
コード例 #11
0
    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}$")
コード例 #12
0
 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)