Ejemplo n.º 1
0
    def test_calculate_weight(self):
        n_samples = 2
        rc = PMCABC([self.model], [self.dist_calc], self.backend, seed=1)
        theta = np.array([1.0, 1.0])

        weight = rc._calculate_weight(theta)
        self.assertEqual(weight, 0.5)

        accepted_parameters = [[1.0, 1.0 + np.sqrt(2)], [0, 0]]
        accepted_weights = np.array([[.5], [.5]])
        accepted_cov_mat = [np.array([[1.0, 0], [0, 1]])]
        rc.accepted_parameters_manager.update_broadcast(
            rc.backend, accepted_parameters, accepted_weights,
            accepted_cov_mat)
        kernel_parameters = []
        for kernel in rc.kernel.kernels:
            kernel_parameters.append(
                rc.accepted_parameters_manager.
                get_accepted_parameters_bds_values(kernel.models))

        rc.accepted_parameters_manager.update_kernel_values(
            rc.backend, kernel_parameters=kernel_parameters)
        weight = rc._calculate_weight(theta)
        expected_weight = 0.170794684453
        self.assertAlmostEqual(weight, expected_weight)
Ejemplo n.º 2
0
    def test_calculate_weight(self):
        n_samples = 2
        rc = PMCABC(self.model, self.dist_calc, self.kernel, self.backend, 1)
        theta = np.array([1.0])


        weight = rc._calculate_weight(theta)
        self.assertEqual(weight, 0.5)
        
        accepted_parameters = np.array([[1.0], [1.0 + np.sqrt(2)]])
        accepted_weights = np.array([[.5], [.5]])
        accepted_cov_mat = np.array([[1.0]])
        rc._update_broadcasts(accepted_parameters, accepted_weights, accepted_cov_mat)
        weight = rc._calculate_weight(theta)
        expected_weight = (2.0 * np.sqrt(2.0 * np.pi)) /(( 1 + np.exp(-1))*100)
        self.assertEqual(weight, expected_weight)