def testParameters(self): pdf = Dirichlet([1, 1]) alpha = numpy.array([2, 2]) pdf.alpha = numpy.array([2, 2]) self.assertEqual(pdf.alpha.tolist(), alpha.tolist()) self.assertEqual(pdf.alpha.tolist(), pdf['alpha'].tolist())
def testParameters(self): pdf = Dirichlet([1, 1]) alpha = numpy.array([2, 2]) pdf.alpha = numpy.array([2, 2]) self.assertEqual(pdf.alpha.tolist(), alpha.tolist()) self.assertEqual(pdf.alpha.tolist(), pdf['alpha'].tolist())
def testParameterEstimation(self): alpha = numpy.array([1., 1., 1.]) pdf = Dirichlet(alpha) self.assertAlmostEqual(pdf(numpy.array([1., 0., 0])), pdf(numpy.array([0., 1., 0])), delta=1e-1) self.assertAlmostEqual(pdf(numpy.array([1. / 3., 1. / 3., 1. / 3])), pdf(numpy.array([0., 1., 0])), delta=1e-1) alpha = numpy.array([16., 16., 16.]) pdf = Dirichlet(alpha) self.assertAlmostEqual(pdf(numpy.array([1., 0., 0])), pdf(numpy.array([0., 1., 0])), delta=1e-1) self.assertAlmostEqual(pdf(numpy.array([1., 0., 0])), pdf(numpy.array([0., 0., 1])), delta=1e-1) self.assertNotEqual(pdf(numpy.array([1. / 3., 1. / 3., 1. / 3])), pdf(numpy.array([0., 1., 0]))) alpha = numpy.array([1., 1., 1.]) pdf = Dirichlet(alpha) samples = pdf.random(100000) pdf.estimate(samples) for i in range(len(alpha)): self.assertAlmostEqual(pdf.alpha[i], alpha[i], delta=1e-1) alpha = numpy.array([200., 60., 20.]) pdf = Dirichlet(alpha) samples = pdf.random(100000) pdf.estimate(samples) for i in range(len(alpha)): self.assertAlmostEqual(pdf.alpha[i], alpha[i], delta=1e1)
def testLogProb(self): alpha = numpy.array([2, 2]) pdf = Dirichlet(alpha) x = numpy.array([0.5, 0.5]) self.assertAlmostEqual(pdf(x), 1.5, places=2) x = numpy.array([0.1, 0.9]) self.assertAlmostEqual(pdf(x), .54, places=2) x = numpy.array([0.9, 0.1]) self.assertAlmostEqual(pdf(x), .54, places=2) x = numpy.array([[0.9, 0.1], [0.1, 0.9], [0.5, 0.5]]) self.assertAlmostEqual(pdf(x)[0], .54, places=2) self.assertAlmostEqual(pdf(x)[1], .54, places=2) self.assertAlmostEqual(pdf(x)[2], 1.5, places=2)
def testParameterEstimation(self): alpha = numpy.array([1., 1., 1.]) pdf = Dirichlet(alpha) self.assertAlmostEqual(pdf(numpy.array([1., 0., 0])), pdf(numpy.array([0., 1., 0])), delta=1e-1) self.assertAlmostEqual(pdf(numpy.array([1. / 3., 1. / 3., 1. / 3])), pdf(numpy.array([0., 1., 0])), delta=1e-1) alpha = numpy.array([16., 16., 16.]) pdf = Dirichlet(alpha) self.assertAlmostEqual(pdf(numpy.array([1., 0., 0])), pdf(numpy.array([0., 1., 0])), delta=1e-1) self.assertAlmostEqual(pdf(numpy.array([1., 0., 0])), pdf(numpy.array([0., 0., 1])), delta=1e-1) self.assertNotEqual(pdf(numpy.array([1. / 3., 1. / 3., 1. / 3])), pdf(numpy.array([0., 1., 0]))) alpha = numpy.array([1., 1., 1.]) pdf = Dirichlet(alpha) samples = pdf.random(100000) pdf.estimate(samples) for i in range(len(alpha)): self.assertAlmostEqual(pdf.alpha[i], alpha[i], delta=1e-1) alpha = numpy.array([200., 60., 20.]) pdf = Dirichlet(alpha) samples = pdf.random(100000) pdf.estimate(samples) for i in range(len(alpha)): self.assertAlmostEqual(pdf.alpha[i], alpha[i], delta=1e1)