def test(self, weights, num_samples=10000):
     plot.figure(self.i)
     self.i+=1
     
     weights = weights/float(weights.sum())
 
     d = distribution(weights)
     sample = d.sample(num_samples)
     
     frequencies = numpy.array([sample.count(i) for i in xrange(weights.size)])
     
     plot.plot(numpy.arange(weights.size), weights/float(sum(weights)))
     plot.plot(numpy.arange(weights.size), frequencies/float(sum(frequencies)), "b*")
Beispiel #2
0
def better_resample(X, weights):
    return numpy.array(distribution(weights).sample(X.shape[0], X))