Example #1
0
def _sample_component_categorical(model, col_idx, component_idx):
    hypers = model['col_hypers'][col_idx]
    if component_idx < len(model['col_suffstats'][col_idx]):
        suffstats = model['col_suffstats'][col_idx][component_idx]
    else:
        k = int(model['col_suffstats'][col_idx][0]['k'])
        suffstats = {'n': 0., 'k': k}

    return csd.sample(suffstats, hypers)
Example #2
0
def _sample_component_categorical(model, col_idx, component_idx):
    hypers = model['col_hypers'][col_idx]
    if component_idx < len(model['col_suffstats'][col_idx]):
        suffstats = model['col_suffstats'][col_idx][component_idx]
    else:
        k = int(model['col_suffstats'][col_idx][0]['k'])
        suffstats = {'n': 0., 'k': k}

    return csd.sample(suffstats, hypers)
Example #3
0
def test_sample_proportions():
    n_samples = 10000

    hypers = {'dirichlet_alpha': 1.}
    suffstats = {'n': 2, 'k': 2, '0': 1, '1': 1}

    samples = csd.sample(suffstats, hypers, n=n_samples)
    bins = np.array(np.bincount(samples), dtype=float)
    assert len(bins) == 2
    bins /= n_samples
    assert abs(bins[0] - bins[1]) < .05

    suffstats = {'n': 10, 'k': 2, '1': 10}

    samples = csd.sample(suffstats, hypers, n=n_samples)
    bins = np.array(np.bincount(samples), dtype=float)
    assert len(bins) == 2
    bins /= n_samples

    assert abs(bins[0] - bins[1]) > .8