def sampleRow(self, amount):
   category = ST.drawCategory(self.mixture)
   dirichlet = self.dirichlets[category]
   multinomial = ST.drawFromDirichlet(dirichlet)
   retVal = [0]*self.K
   for i in range(0, amount):
     k = ST.drawCategory(multinomial)
     retVal[k] += 1
   return retVal
 def sampleRow(self, amount):
     category = ST.drawCategory(self.mixture)
     dirichlet = self.dirichlets[category]
     multinomial = ST.drawFromDirichlet(dirichlet)
     retVal = [0] * self.K
     for i in range(0, amount):
         k = ST.drawCategory(multinomial)
         retVal[k] += 1
     return retVal
def initMixtureModel(data, hyperParams):
    # Initialize parameter data structs
    C = hyperParams.C
    K = hyperParams.K

    mixture = [1.0 / C] * C

    multinomials = []
    for c in range(0, C):
        randomMultinomial = ST.drawFromDirichlet(hyperParams.componentDirich)
        multinomials.append(randomMultinomial)

    return MME.MultinomialMixtureModel(C, K, multinomials, mixture)
def initMixtureModel(data, hyperParams):
    # Initialize parameter data structs
    C = hyperParams.C
    K = hyperParams.K

    mixture = [1.0 / C] * C

    multinomials = []
    for c in range(0, C):
        randomMultinomial = ST.drawFromDirichlet(hyperParams.componentDirich)
        multinomials.append(randomMultinomial)

    return MME.MultinomialMixtureModel(C, K, multinomials, mixture)
#
#

import sys
import csv
import math
import random
import samplingTools as Sample
from optparse import OptionParser

parser = OptionParser()
parser.add_option('-N', '--numMulinomials', dest='N', type="int", default=100, help='Number of distinct multinomials to generate')
parser.add_option('-M', '--numSamplesPerRow', dest='M', type="int", default=100, help='The number of samples for each multinomial')
parser.add_option('-A', '--alpha', dest='A', default='1,1', help='Comma-separated dirichlet parameters')
parser.add_option('-O', '--outputType', dest='O', default='countMatrix', help='The type of output: countMatrix (default), or UMatrix')
(options, args) = parser.parse_args()


alphas = map(float, options.A.split(","))
K = len(alphas)
outputType = "countMatrix"
if (options.O == "UMatrix"): outputType = options.O

if (outputType == "UMatrix"):
  data = Sample.generateRandomDataset(options.M, options.N, alphas)
  print "\t".join(map(str, data))
else:
  for i in range(0, options.N):
	  multinomial = Sample.drawFromDirichlet(alphas)
	  buckets = Sample.sampleFromMultinomial(multinomial, options.M)
	  print "\t".join(map(str, buckets))
Example #6
0
                  '--numMulinomials',
                  dest='N',
                  type="int",
                  default=100,
                  help='Number of distinct multinomials to generate')
parser.add_option('-A',
                  '--alpha',
                  dest='A',
                  default='1,1',
                  help='Comma-separated dirichlet parameters')
parser.add_option(
    '-O',
    '--outputType',
    dest='O',
    default='multnomials',
    help=
    'The type of output: multnomials (default), or ss (sufficient statistic) which is the average of the sum of the logs for each category'
)
(options, args) = parser.parse_args()

alphas = map(float, options.A.split(","))
K = len(alphas)

if (options.O == "ss"):
    for i in range(0, options.N):
        multinomial = Sample.drawFromDirichlet(alphas)
        print "\t".join(map(str, multinomial))
else:
    for i in range(0, options.N):
        multinomial = Sample.drawFromDirichlet(alphas)
        print "\t".join(map(str, multinomial))