def test_em_loglike6(): """ """ dim = 1 k = 1 n = 100 offset = 3. x = nr.randn(n,dim) y = offset+nr.randn(n,dim) lgmm = GMM(k,dim) lgmm.initialize(x) lgmm.estimate(x) ll1 = lgmm.average_log_like(x) ll2 = lgmm.average_log_like(y) ent = 0.5*(1+np.log(2*np.pi)) dkl = 0.5*offset**2 print ll2, ll1,dkl assert ll2<ll1
def test_em_loglike1(): dim = 1 k = 3 n = 1000 x = nr.randn(n, dim) lgmm = GMM(k, dim) lgmm.initialize(x) lgmm.estimate(x) ll = lgmm.average_log_like(x) ent = 0.5 * (1 + np.log(2 * np.pi)) print ll, ent assert_true(np.absolute(ll + ent) < 3.0 / np.sqrt(n))
def test_em_loglike4(): dim = 5 k = 1 n = 1000 scale = 3.0 offset = 4.0 x = offset + scale * nr.randn(n, dim) lgmm = GMM(k, dim) lgmm.initialize(x) lgmm.estimate(x) ll = lgmm.average_log_like(x) ent = dim * 0.5 * (1 + np.log(2 * np.pi * scale ** 2)) print ll, ent assert_true(np.absolute(ll + ent) < dim * 3.0 / np.sqrt(n))
def test_em_loglike2(): """ """ dim = 1 k = 1 n = 1000 scale = 3. offset = 4. x = offset + scale * nr.randn(n,dim) lgmm = GMM(k,dim) lgmm.initialize(x) lgmm.estimate(x) ll = lgmm.average_log_like(x) ent = 0.5*(1+np.log(2*np.pi*scale**2)) print ll, ent assert np.absolute(ll+ent)<3./np.sqrt(n)