def test_multiple_phi(self): vb = VariationalBayes() gamma = array([2.0, 2.0, 2.0]) beta = self.init_beta phi = vb.new_phi(gamma, beta, 0, 2) prop = 0.27711205238850234 normalizer = sum(x * prop for x in beta[:, 0]) / 2.0 self.assertAlmostEqual(phi[0], beta[0][0] * prop / normalizer) self.assertAlmostEqual(phi[1], beta[1][0] * prop / normalizer) self.assertAlmostEqual(phi[2], beta[2][0] * prop / normalizer)
def test_m(self): vb = VariationalBayes() vb.init([], "stuck", 3) topic_count = array([[5., 4., 3., 2., 1.], [0., 2., 2., 4., 1.], [1., 1., 1., 1., 1.]]) new_beta = vb.m_step(topic_count) self.assertAlmostEqual(new_beta[2][3], .2) self.assertAlmostEqual(new_beta[0][0], .33333333) self.assertAlmostEqual(new_beta[1][4], .11111111) self.assertAlmostEqual(new_beta[0][3], .13333333)