Exemplo n.º 1
0
    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())
Exemplo n.º 2
0
 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())
Exemplo n.º 3
0
    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)
Exemplo n.º 4
0
    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)
Exemplo n.º 5
0
    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)