Esempio n. 1
0
    def __init__(self,
                 cluster_density,
                 alpha=None,
                 alpha_shape=None,
                 alpha_rate=None):
        self.base_measure = PyCloneBaseMeasure()

        self.partition_sampler = AuxillaryParameterPartitionSampler(
            self.base_measure, cluster_density)

        self.atom_sampler = BaseMeasureAtomSampler(self.base_measure,
                                                   cluster_density)

        if alpha is None:
            self.alpha = 1

            self.update_alpha = True

            self.concentration_sampler =\
                GammaPriorConcentrationSampler(alpha_shape, alpha_rate)
        else:
            self.alpha = alpha

            self.update_alpha = False

        self.num_iters = 0
Esempio n. 2
0
    def __init__(self,
                 atom_sampler,
                 partition_sampler,
                 alpha=1.0,
                 alpha_priors=None,
                 global_params_sampler=None):
        self.atom_sampler = atom_sampler

        self.partition_sampler = partition_sampler

        self.alpha = alpha

        if alpha_priors is None:
            self.update_alpha = False

        else:
            self.update_alpha = True

            self.concentration_sampler = GammaPriorConcentrationSampler(
                alpha_priors['shape'], alpha_priors['rate'])

        if global_params_sampler is None:
            self.update_global_params = False

        else:
            self.update_global_params = True

            self.global_params_sampler = global_params_sampler

        self.num_iters = 0
Esempio n. 3
0
    def __init__(self, base_measure, cluster_density):
        self.base_measure = base_measure

        self.cluster_density = cluster_density

        self.concentration_sampler = GammaPriorConcentrationSampler(1, 1)

        posterior_density = BetaBinomialDensity()

        #        self.partition_sampler = MarginalGibbsPartitionSampler(base_measure, cluster_density, posterior_density)
        self.partition_sampler = AuxillaryParameterPartitionSampler(
            base_measure, cluster_density)

        self.atom_sampler = BetaBinomialGibbsAtomSampler(
            base_measure, cluster_density)
from math import log

from pydp.samplers.concentration import GammaPriorConcentrationSampler

sampler = GammaPriorConcentrationSampler(0.01, 0.01)

x = 0

for i in range(1000000):
    x = sampler.sample(x, 1, 100)

    x /= 2

    print x

    log(x)
Esempio n. 5
0
    x = poisson_rvs(25)
    data.append(PoissonData(x))

alpha = 1

base_measure = GammaBaseMeasure(1, 1)

cluster_density = PoissonDensity()

partition = Partition()

for item, data_point in enumerate(data):
    partition.add_cell(base_measure.random())
    partition.add_item(item, item)

concentration_sampler = GammaPriorConcentrationSampler(1, 1)

posterior_density = NegativeBinomialDensity()
partition_sampler = MarginalGibbsPartitionSampler(base_measure,
                                                  cluster_density,
                                                  posterior_density)

#partition_sampler = AuxillaryParameterPartitionSampler(base_measure, cluster_density)

atom_sampler = GammaPoissonGibbsAtomSampler(base_measure, cluster_density)

for i in range(num_iters):
    alpha = concentration_sampler.sample(alpha, partition.number_of_cells,
                                         partition.number_of_items)

    partition_sampler.sample(data, partition, alpha)