def check_probs(a, b): check_cm(a) check_cm(b) a = ComponentModel(a) a.realize_hp() b = ComponentModel(b, hp=a.dump_hp()) dps = [a.sample_data() for _ in range(DPS)] for y in dps: assert_almost_equal(a.data_prob(), b.data_prob()) assert_almost_equal(a.pred_prob(y), b.pred_prob(y)) a.add_data(y) b.add_data(y)
def check_ss(a, b): check_cm(a) check_cm(b) a = ComponentModel(a) a.realize_hp() b = ComponentModel(b, hp=a.dump_hp()) dps = [a.sample_data() for _ in range(DPS)] assert_equal(a.dump_ss(), b.dump_ss()) for y in dps: a.add_data(y) b.add_data(y) assert_close(a.dump_ss(), b.dump_ss()) for y in dps: a.remove_data(y) b.remove_data(y) assert_close(a.dump_ss(), b.dump_ss())
def test_vectorize(): for name in MODELS: check_cm(name) cm0 = ComponentModel(name) cm0.realize_hp() hp0 = cm0.dump_hp() cms = [ComponentModel(name, hp=hp0) for _ in range(COMPS)] for cm in cms: dps = [cm.sample_data() for _ in range(DPS)] for dp in dps: cm.add_data(dp) mod = cms[0].mod hp = cms[0].hp ss = [cm.ss for cm in cms] for cm in cms: y = cm.sample_data() scores = numpy.zeros(COMPS) mod.add_pred_probs(hp, ss, y, scores) for cm, score in zip(cms, scores): assert_almost_equal(score, cm.pred_prob(y))
def check_hp(a, b): check_cm(a) check_cm(b) a = ComponentModel(a) b = ComponentModel(b) assert_equal(a.dump_hp(), b.dump_hp())
def check_hp_io(name): check_cm(name) cm = ComponentModel(name) cm.realize_hp() assert_equal(ComponentModel(name, hp=cm.dump_hp()).dump_hp(), cm.dump_hp())