コード例 #1
0
    def work(self):
        self.worked = True
        kwargs = dict(
            weights=self.weights,
            mus=self.mus,
            sigmas=self.sigmas,
            low=self.low,
            high=self.high,
            q=self.q,
        )
        samples = GMM1(rng=self.rng, size=(self.n_samples, ), **kwargs)
        samples = np.sort(samples)
        edges = samples[::self.samples_per_bin]
        #print samples

        pdf = np.exp(GMM1_lpdf(edges[:-1], **kwargs))
        dx = edges[1:] - edges[:-1]
        y = 1 / dx / len(dx)

        if self.show:
            plt.scatter(edges[:-1], y)
            plt.plot(edges[:-1], pdf)
            plt.show()
        err = (pdf - y)**2
        print np.max(err)
        print np.mean(err)
        print np.median(err)
        if not self.show:
            assert np.max(err) < .1
            assert np.mean(err) < .01
            assert np.median(err) < .01
コード例 #2
0
 def test_mat_output(self):
     samples = GMM1([.9999, .0001], [0.0, 1.0], [0.000001, 0.000001],
                    rng=self.rng,
                    size=[40, 20])
     assert samples.shape == (40, 20)
     assert -.001 < np.mean(samples) < .001, np.mean(samples)
     assert np.var(samples) < .0001, np.var(samples)
コード例 #3
0
 def test_weights(self):
     samples = GMM1([.9999, .0001], [0.0, 1.0], [0.000001, 0.000001],
                    rng=self.rng,
                    size=[1000])
     assert samples.shape == (1000, )
     #import matplotlib.pyplot as plt
     #plt.hist(samples)
     #plt.show()
     assert -.001 < np.mean(samples) < .001, np.mean(samples)
     assert np.var(samples) < .0001, np.var(samples)
コード例 #4
0
 def test_mus_make_variance(self):
     samples = GMM1([.5, .5], [0.0, 1.0], [0.000001, 0.000001],
                    rng=self.rng,
                    size=[1000])
     print samples.shape
     #import matplotlib.pyplot as plt
     #plt.hist(samples)
     #plt.show()
     assert .45 < np.mean(samples) < .55, np.mean(samples)
     assert .2 < np.var(samples) < .3, np.var(samples)
コード例 #5
0
ファイル: test_tpe.py プロジェクト: wqren/hyperopt
    def work(self, **kwargs):
        self.__dict__.update(kwargs)
        del kwargs
        self.worked = True
        gkwargs = dict(
            weights=self.weights,
            mus=self.mus,
            sigmas=self.sigmas,
            low=self.low,
            high=self.high,
            q=self.q,
        )
        samples = GMM1(rng=self.rng, size=(self.n_samples, ), **
                       gkwargs) / self.q
        print 'drew', len(samples), 'samples'
        assert np.all(samples == samples.astype('int'))
        min_max = int(samples.min()), int(samples.max())
        counts = np.bincount(samples.astype('int') - min_max[0])

        print counts
        xcoords = np.arange(min_max[0], min_max[1] + 1) * self.q
        prob = np.exp(GMM1_lpdf(xcoords, **gkwargs))
        assert counts.sum() == self.n_samples
        y = counts / float(self.n_samples)

        if self.show:
            import matplotlib.pyplot as plt
            plt.scatter(xcoords, y, c='r', label='empirical')
            plt.scatter(xcoords, prob, c='b', label='predicted')
            plt.legend()
            plt.title(str(self.show))
            plt.show()
        err = (prob - y)**2
        print np.max(err)
        print np.mean(err)
        print np.median(err)
        if self.show:
            raise nose.SkipTest()
        else:
            assert np.max(err) < .1
            assert np.mean(err) < .01
            assert np.median(err) < .01
コード例 #6
0
ファイル: test_tpe.py プロジェクト: vishalbelsare/hyperopt
    def work(self, **kwargs):
        self.__dict__.update(kwargs)
        del kwargs
        self.worked = True
        gkwargs = dict(
            weights=self.weights,
            mus=self.mus,
            sigmas=self.sigmas,
            low=self.low,
            high=self.high,
            q=self.q,
        )
        samples = old_div(
            GMM1(rng=self.rng, size=(self.n_samples, ), **gkwargs), self.q)
        print("drew", len(samples), "samples")
        assert np.all(samples == samples.astype("int"))
        min_max = int(samples.min()), int(samples.max())
        counts = np.bincount(samples.astype("int") - min_max[0])

        print(counts)
        xcoords = np.arange(min_max[0], min_max[1] + 1) * self.q
        prob = np.exp(GMM1_lpdf(xcoords, **gkwargs))
        assert counts.sum() == self.n_samples
        y = old_div(counts, float(self.n_samples))

        if self.show:
            plt.scatter(xcoords, y, c="r", label="empirical")
            plt.scatter(xcoords, prob, c="b", label="predicted")
            plt.legend()
            plt.title(str(self.show))
            plt.show()
        err = (prob - y)**2
        print(np.max(err))
        print(np.mean(err))
        print(np.median(err))
        if self.show:
            raise nose.SkipTest()
        else:
            assert np.max(err) < 0.1
            assert np.mean(err) < 0.01
            assert np.median(err) < 0.01
コード例 #7
0
 def test_sigma_is_used_correctly(self):
     samples = GMM1([1], [0.0], [10.0], size=[1000], rng=self.rng)
     assert 9 < np.std(samples) < 11
コード例 #8
0
 def test_mu_is_used_correctly(self):
     assert np.allclose(10, GMM1([1], [10.0], [0.0000001], rng=self.rng))