コード例 #1
0
 def test_posterior(self):
     classifier = MaxEnt()
     classifier.labelsToWeights = {'cat': [2, -3], 'dog': [-2, 3]}
     self.assertAlmostEqual(classifier.posterior('cat', np.array([0, 1])), .00247, 4)
     self.assertAlmostEqual(classifier.posterior('cat', np.array([1, 0])), .98201, 4)
     self.assertAlmostEqual(classifier.posterior('dog', np.array([0, 1])), .99753, 4)
     self.assertAlmostEqual(classifier.posterior('dog', np.array([1, 0])), .01799, 4)
     self.assertAlmostEqual(classifier.posterior('cat', np.array([1, 1])), .11920, 4)
     self.assertAlmostEqual(classifier.posterior('dog', np.array([1, 1])), .88080, 4)
コード例 #2
0
 def test_gradient(self):
     classifier = MaxEnt()
     classifier.labelsToWeights = {'cat': [2, -3], 'dog': [-2, 3]}
     dataset = ([Animal(np.array([1, 0]), 'cat'), Animal(np.array([0, 1]), 'cat'), Animal(np.array([0, 1]), 'dog'),
                 Animal(np.array([0, 1]), 'dog'), Animal(np.array([1, 1]), 'cat')])
     gradient = classifier.gradient(dataset)
     self.assertAlmostEqual(gradient['cat'][0], .89879, 4)
     self.assertAlmostEqual(gradient['cat'][1], 1.87339, 4)
     self.assertAlmostEqual(gradient['dog'][0], -.89879, 4)
     self.assertAlmostEqual(gradient['dog'][1], -1.87339, 4)
コード例 #3
0
 def test_observed_counts(self):
     classifier = MaxEnt()
     classifier.labelsToWeights = {'cat': [2, -3], 'dog': [-2, 3]}
     dataset = ([Animal(np.array([1, 0]), 'cat'), Animal(np.array([0, 1]), 'cat'), Animal(np.array([0, 1]), 'dog'),
                 Animal(np.array([0, 1]), 'dog'), Animal(np.array([1, 1]), 'cat')])
     observedCounts = classifier.observedCounts(dataset)
     self.assertEqual(observedCounts['cat'][0], 2)
     self.assertEqual(observedCounts['cat'][1], 2)
     self.assertEqual(observedCounts['dog'][0], 0)
     self.assertEqual(observedCounts['dog'][1], 2)
コード例 #4
0
 def test_expected_counts(self):
     classifier = MaxEnt()
     classifier.labelsToWeights = {'cat': [2, -3], 'dog': [-2, 3]}
     dataset = ([Animal(np.array([1, 0]), 'cat'), Animal(np.array([0, 1]), 'cat'), Animal(np.array([0, 1]), 'dog'),
                 Animal(np.array([0, 1]), 'dog'), Animal(np.array([1, 1]), 'cat')])
     expectedCounts = classifier.expectedModelCounts(dataset)
     self.assertAlmostEqual(expectedCounts['cat'][0], 1.10121, 4)
     self.assertAlmostEqual(expectedCounts['cat'][1], .12661, 4)
     self.assertAlmostEqual(expectedCounts['dog'][0], .89879, 4)
     self.assertAlmostEqual(expectedCounts['dog'][1], 3.87339, 4)