def test_predict_mocked(self, rf_mock):
        class SideEffect(object):
            def __init__(self):
                self.counter = 0

            def __call__(self, X):
                self.counter += 1
                # Mean and variance
                rval = np.array([self.counter] * X.shape[0])
                return rval, rval

        rf_mock.side_effect = SideEffect()

        rs = np.random.RandomState(1)
        X = rs.rand(20, 10)
        Y = rs.rand(10, 3)
        model = UncorrelatedMultiObjectiveRandomForestWithInstances(
            ['cost', 'ln(runtime)', 'foo'], np.zeros((10, ), dtype=np.uint))

        model.train(X[:10], Y[:10])
        m_hat, v_hat = model.predict(X[10:])
        self.assertEqual(m_hat.shape, (10, 3))
        self.assertEqual(v_hat.shape, (10, 3))
        self.assertEqual(rf_mock.call_count, 3)
        for i in range(10):
            for j in range(3):
                self.assertEqual(m_hat[i][j], j + 1)
                self.assertEqual(v_hat[i][j], j + 1)
 def test_train_and_predict_with_rf(self):
     rs = np.random.RandomState(1)
     X = rs.rand(20, 10)
     Y = rs.rand(10, 2)
     model = UncorrelatedMultiObjectiveRandomForestWithInstances(
         ['cost', 'ln(runtime)'], np.zeros((10, ), dtype=np.uint))
     model.train(X[:10], Y)
     m, v = model.predict(X[10:])
     self.assertEqual(m.shape, (10, 2))
     self.assertEqual(v.shape, (10, 2))
예제 #3
0
 def test_train_and_predict_with_rf(self):
     rs = np.random.RandomState(1)
     X = rs.rand(20, 10)
     Y = rs.rand(10, 2)
     model = UncorrelatedMultiObjectiveRandomForestWithInstances(
         ['cost', 'ln(runtime)'],
         types=np.zeros((10, ), dtype=np.uint),
         bounds=np.array([(0, np.nan), (0, np.nan), (0, np.nan),
                          (0, np.nan), (0, np.nan), (0, np.nan),
                          (0, np.nan), (0, np.nan), (0, np.nan),
                          (0, np.nan)],
                         dtype=object),
         rf_kwargs={'seed': 1},
         pca_components=5)
     self.assertEqual(model.estimators[0].seed, 1)
     self.assertEqual(model.estimators[1].seed, 1)
     self.assertEqual(model.pca_components, 5)
     model.train(X[:10], Y)
     m, v = model.predict(X[10:])
     self.assertEqual(m.shape, (10, 2))
     self.assertEqual(v.shape, (10, 2))