def test_mm():
    np.random.seed(0)

    import distributions
    N = 100

    data = np.zeros(N, dtype=np.float32)
    MODEL = distributions.conjugate.nich
    data[::2] = -1
    data[1::2] = 1
    f = mixmodel.Feature(data, MODEL)
    f.hps = MODEL.HP(0.0, 1.0, 1.0, 1.0)

    mm = mixmodel.MixtureModel(N, {'f1' : f})
    
    rng = None
    # random init
    grp = {}
    for i, g in enumerate(np.random.permutation(np.arange(N) % 10)):
        if g not in grp:
            grp[g] = mm.create_group(rng)
        mm.add_entity_to_group(grp[g], i)
    print mm.score()

    for i in range(10):
        gibbs.gibbs_sample(mm, rng)
        print mm.score()

    assert_equal(irm.util.count(mm.get_assignments()).values(), [50, 50])
def test_mm():
    np.random.seed(0)

    import distributions
    N = 100

    data = np.zeros(N, dtype=np.float32)
    MODEL = distributions.conjugate.nich
    data[::2] = -1
    data[1::2] = 1
    f = mixmodel.Feature(data, MODEL)
    f.hps = MODEL.HP(0.0, 1.0, 1.0, 1.0)

    mm = mixmodel.MixtureModel(N, {'f1': f})

    rng = None
    # random init
    grp = {}
    for i, g in enumerate(np.random.permutation(np.arange(N) % 10)):
        if g not in grp:
            grp[g] = mm.create_group(rng)
        mm.add_entity_to_group(grp[g], i)
    print mm.score()

    for i in range(10):
        gibbs.gibbs_sample(mm, rng)
        print mm.score()

    assert_equal(irm.util.count(mm.get_assignments()).values(), [50, 50])
Exemple #3
0
 def test_format(self):
     fr = FR(factors)
     sample = gibbs_sample(fr, 100, 0)
     self.assertEqual(type(sample), type(('foo', 'barr')))
     self.assertEqual(len(sample), 100)
     for s in sample:
         self.assertEqual(len(s), 100)
         for x in s:
             self.assertEqual(x in [0, 1], True)
Exemple #4
0
 def test_format(self):
     fr = FR(factors)
     sample =  gibbs_sample(fr,100,0)
     self.assertEqual(type(sample),type(('foo','barr')))
     self.assertEqual(len(sample),100)
     for s in sample:
         self.assertEqual(len(s),100)
         for x in s:
             self.assertEqual(x in [0,1],True)
Exemple #5
0
from gPy.Variables import declare_variable
from gPy.Parameters import Factor
from gibbs import gibbs_sample
from gPy.Models import FR

for i in range(10):
    for j in range(10):
        declare_variable((i,j),binvals)

x=1
y=5
data = [
    x,  # 0,0
    y,  # 0,1
    y,  # 1,0
    x   # 1,1
    ]

factors = []
for i in range(10):
    for j in range(10):
        factors.append(Factor(((i,j),((i+1)%10,j)),data))
        factors.append(Factor(((i,j),(i,(j+1)%10)),data))

fr = FR(factors)
sample =  gibbs_sample(fr,100,0)
cPickle.dump(sample,open(sys.argv[1],'w'))


Exemple #6
0
binvals = (0, 1)

from gPy.Variables import declare_variable
from gPy.Parameters import Factor
from gibbs import gibbs_sample
from gPy.Models import FR

for i in range(10):
    for j in range(10):
        declare_variable((i, j), binvals)

x = 1
y = 5
data = [
    x,  # 0,0
    y,  # 0,1
    y,  # 1,0
    x  # 1,1
]

factors = []
for i in range(10):
    for j in range(10):
        factors.append(Factor(((i, j), ((i + 1) % 10, j)), data))
        factors.append(Factor(((i, j), (i, (j + 1) % 10)), data))

fr = FR(factors)
sample = gibbs_sample(fr, 100, 0)
cPickle.dump(sample, open(sys.argv[1], 'w'))