示例#1
0
    def test_1d_kriging1(self):

        x = array([[0.05], [.25], [0.61], [0.95]])
        y = array([0.738513784857542, -0.210367746201974, -0.489015457891476, 12.3033138316612])
        krig1 = KrigingSurrogate()
        krig1.train(x, y)

        self.assertAlmostEqual(.4771, krig1.thetas[0], places=4)
示例#2
0
    def test_get_uncertain_value(self):
        x = array([[0.05], [.25], [0.61], [0.95]])
        y = array([0.738513784857542, -0.210367746201974, -0.489015457891476, 12.3033138316612])
        krig1 = KrigingSurrogate()
        krig1.train(x, y)

        self.assertEqual(krig1.get_uncertain_value(1).mu, NormalDistribution(1., 0.).mu)
        self.assertEqual(krig1.get_uncertain_value(1).sigma, NormalDistribution(1., 0.).sigma)
示例#3
0
    def test_no_training_data(self):
        krig1 = KrigingSurrogate()

        try:
            krig1.predict([0., 1.])
        except RuntimeError as err:
            self.assertEqual(str(err),
                "KrigingSurrogate has not been trained, so no prediction can be made")
        else:
            self.fail("RuntimeError Expected")
示例#4
0
    def test_1d_kriging3(self):
        # Test for least squares solver utilization when ill-conditioned
        x = [[case] for case in linspace(0., 1., 40)]
        y = sin(x).flatten()
        krig1 = KrigingSurrogate()
        krig1.train(x, y)
        new_x = array([0.5])
        mu, sigma = krig1.predict(new_x)

        self.assertAlmostEqual(8.7709e-09, sigma, places=7)
        self.assertAlmostEqual(0.479425538688, mu, places=7)
示例#5
0
    def test_1d_kriging_predictor(self):
        x = array([[0.05], [.25], [0.61], [0.95]])
        y = array([0.738513784857542, -0.210367746201974, -0.489015457891476, 12.3033138316612])

        krig1 = KrigingSurrogate()
        krig1.train(x, y)
        new_x = array([0.5])
        mu, sigma = krig1.predict(new_x)

        self.assertAlmostEqual(.41552, sigma, places=3)
        self.assertAlmostEqual( -1.725, mu, places=3)
示例#6
0
    def test_1d_kriging_predictor(self):
        x = array([[0.05], [.25], [0.61], [0.95]])
        y = array([0.738513784857542, -0.210367746201974, -0.489015457891476, 12.3033138316612])

        krig1 = KrigingSurrogate()
        krig1.train(x, y)
        new_x = array([0.5])
        pred = krig1.predict(new_x)

        self.assertTrue(isinstance(pred, NormalDistribution))
        self.assertAlmostEqual(.41552, pred.sigma, places=3)
        self.assertAlmostEqual( -1.725, pred.mu, places=3)
示例#7
0
    def test_2d_kriging(self):
        def bran(x):
            y = (x[1]-(5.1/(4.*pi**2.))*x[0]**2.+5.*x[0]/pi-6.)**2.+10.*(1.-1./(8.*pi))*cos(x[0])+10.
            return y

        x = array([[-2., 0.], [-0.5, 1.5], [1., 3.], [8.5, 4.5], [-3.5, 6.], [4., 7.5], [-5., 9.], [5.5, 10.5],
                   [10., 12.], [7., 13.5], [2.5, 15.]])
        y = array([bran(case) for case in x])

        krig1 = KrigingSurrogate()
        krig1.train(x, y)
        mu, sigma = krig1.predict([-2., 0.])
        self.assertAlmostEqual(bran(x[0]), mu, places=5)

        mu, sigma = krig1.predict([5., 5.])

        self.assertAlmostEqual(5.79, sigma, places=0)
        self.assertAlmostEqual(25.34, mu, places=1)