예제 #1
0
    def test_probability_of_root_variable(self):
        bnn = BayesNetNode("var1")
        bnn.set_probablity(0.3, [True])

        false_result = bnn.probability_of({"var1": False})
        expected_false_result = 0.7
        self.assertAlmostEqual(expected_false_result, false_result, places=5)

        true_result = bnn.probability_of({"var1": True})
        expected_true_result = 0.3
        self.assertAlmostEqual(expected_true_result, true_result, places=5)
예제 #2
0
    def test_probability_of_root_variable(self):
        bnn = BayesNetNode("var1")
        bnn.set_probablity(0.3, [True])

        false_result = bnn.probability_of({"var1": False})
        expected_false_result = 0.7
        self.assertAlmostEqual(expected_false_result, false_result, places=5)

        true_result = bnn.probability_of({"var1": True})
        expected_true_result = 0.3
        self.assertAlmostEqual(expected_true_result, true_result, places=5)
예제 #3
0
    def test_probability_of_non_root_var(self):
        root_bnn1 = BayesNetNode("root1")
        root_bnn2 = BayesNetNode("root2")
        root_bnn3 = BayesNetNode("root3")

        dependent_bnn = BayesNetNode("dependentNode")
        dependent_bnn.influenced_by(root_bnn1, root_bnn2, root_bnn3)

        dependent_bnn.influenced_by(root_bnn1, root_bnn2, root_bnn3)

        dependent_bnn.set_probablity(0.1, (True, True, True))
        dependent_bnn.set_probablity(0.15, (True, False, True))
        dependent_bnn.set_probablity(0.2, (True, True, False))
        dependent_bnn.set_probablity(0.25, (False, True, True))
        dependent_bnn.set_probablity(0.3, (False, False, True))

        result = dependent_bnn.probability_of({"root1" : True})
        expected_result = 0.1 + 0.15 + 0.2

        self.assertAlmostEqual(expected_result, result, places=5)
예제 #4
0
    def test_probability_of_non_root_var(self):
        root_bnn1 = BayesNetNode("root1")
        root_bnn2 = BayesNetNode("root2")
        root_bnn3 = BayesNetNode("root3")

        dependent_bnn = BayesNetNode("dependentNode")
        dependent_bnn.influenced_by(root_bnn1, root_bnn2, root_bnn3)

        dependent_bnn.influenced_by(root_bnn1, root_bnn2, root_bnn3)

        dependent_bnn.set_probablity(0.1, (True, True, True))
        dependent_bnn.set_probablity(0.15, (True, False, True))
        dependent_bnn.set_probablity(0.2, (True, True, False))
        dependent_bnn.set_probablity(0.25, (False, True, True))
        dependent_bnn.set_probablity(0.3, (False, False, True))

        result = dependent_bnn.probability_of({"root1": True})
        expected_result = 0.1 + 0.15 + 0.2

        self.assertAlmostEqual(expected_result, result, places=5)