def test_classify_all(self): training_set, sample_0 = self.load_car_data() sample_1 = {"color": "yellow", "type": "sports", "origin": "domestic"} dataset = DataSet(pd.DataFrame([sample_0, sample_1]), labels=["no", "yes"]) classifier = NaiveBayes(training_set) results = classifier.classify_all(dataset) assert_that(results.get_classifications(), equals_series({0: "no", 1: "no"})) self.assertEqual(results.compute_accuracy(), 0.5)
def test_classify_inconsistent_features(self): training_set, __ = self.load_car_data() sample = {"color": "yellow", "type": "sports", "year": 2012} classifier = NaiveBayes(training_set) self.assertRaises(InconsistentFeaturesError, classifier.classify, sample)
def test_get_classification_probabilities(self): training_set, sample = self.load_car_data() classifier = NaiveBayes(training_set) probabilities = classifier.get_classification_probabilities(sample) self.assertAlmostEqual(probabilities["yes"], 0.035, places=3) self.assertAlmostEqual(probabilities["no"], 0.070, places=3)
def test_classify_single_sample(self): training_set, sample = self.load_car_data() classifier = NaiveBayes(training_set) self.assertEqual(classifier.classify(sample), "no")
def test_calc_prob_class(self): training_set = DataSet([[1, 2], [3, 4], [5, 6], [7, 8]], labels=["cat", "dog", "cat", "cat"]) classifier = NaiveBayes(training_set) prob = classifier._calc_prob_class("cat") self.assertAlmostEqual(prob, 0.75, places=2)
def test_calc_prob_feature_given_class(self): training_set, sample = self.load_car_data() classifier = NaiveBayes(training_set) prob = classifier._calc_prob_feature_given_class("yes", "color", sample["color"]) self.assertAlmostEqual(prob, 0.57, places=2)
def test_count_examples(self): training_set, sample = self.load_car_data() classifier = NaiveBayes(training_set) count = classifier._count_examples("yes", "color", sample["color"]) self.assertEquals(count, 3)