def test_multi_surrogate_models(self): metamodel = MetaModel() metamodel.name = 'meta' metamodel.surrogate = { 'd': KrigingSurrogate(), 'c': LogisticRegression() } metamodel.model = Simple() metamodel.recorder = DumbRecorder() simple = Simple() metamodel.a = simple.a = 1. metamodel.b = simple.b = 2. metamodel.train_next = True simple.run() metamodel.run() metamodel.a = simple.a = 3. metamodel.b = simple.b = 4. metamodel.train_next = True simple.run() metamodel.run() self.assertTrue(isinstance(metamodel.d, NormalDistribution)) self.assertTrue(isinstance(metamodel.c, float))
def test_default_execute(self): metamodel = MetaModel() metamodel.name = 'meta' metamodel.default_surrogate = KrigingSurrogate() metamodel.model = Simple() metamodel.recorder = DumbRecorder() simple = Simple() #import pdb; pdb.set_trace() metamodel.a = simple.a = 1. metamodel.b = simple.b = 2. metamodel.train_next = True simple.run() metamodel.run() metamodel.a = simple.a = 1. metamodel.b = simple.b = 2. metamodel.train_next = True simple.run() metamodel.run() self.assertEqual(metamodel.c.getvalue(), 3.) self.assertEqual(metamodel.d.getvalue(), -1.) self.assertEqual(metamodel.c.getvalue(), simple.c) self.assertEqual(metamodel.d.getvalue(), simple.d)
def test_warm_start(self): metamodel = MetaModel() metamodel.name = 'meta' metamodel.default_surrogate = KrigingSurrogate() metamodel.model = Simple() metamodel.recorder = DumbRecorder() simple = Simple() cases = [] metamodel.a = 1. metamodel.b = 2. metamodel.train_next = True metamodel.run() inputs = [('meta2.a', metamodel.a), ('meta2.b', metamodel.b)] outputs = [('meta2.c', metamodel.c.mu), ('meta2.d', metamodel.d.mu)] cases.append(Case(inputs=inputs, outputs=outputs)) metamodel.a = 3. metamodel.b = 5. metamodel.train_next = True metamodel.run() inputs = [('meta2.a', metamodel.a), ('meta2.b', metamodel.b)] outputs = [('meta2.c', metamodel.c.mu), ('meta2.d', metamodel.d.mu)] cases.append(Case(inputs=inputs, outputs=outputs)) case_iter = ListCaseIterator(cases) metamodel2 = MetaModel() metamodel2.name = 'meta2' metamodel2.default_surrogate = KrigingSurrogate() metamodel2.model = Simple() metamodel2.recorder = DumbRecorder() metamodel2.warm_start_data = case_iter metamodel2.a = simple.a = 1 metamodel2.b = simple.b = 2 metamodel.train_next = True metamodel2.run() simple.run() self.assertEqual(metamodel2.c.getvalue(), 3.) self.assertEqual(metamodel2.d.getvalue(), -1.) self.assertEqual(metamodel2.c.getvalue(), simple.c) self.assertEqual(metamodel2.d.getvalue(), simple.d)
def test_warm_start(self): metamodel = MetaModel() metamodel.name = 'meta' metamodel.default_surrogate = KrigingSurrogate() metamodel.model = Simple() metamodel.recorder = DumbRecorder() simple = Simple() cases = [] metamodel.a = 1. metamodel.b = 2. metamodel.train_next = True metamodel.run() inputs = [('meta2.a',metamodel.a),('meta2.b',metamodel.b)] outputs = [('meta2.c',metamodel.c.mu),('meta2.d',metamodel.d.mu)] cases.append(Case(inputs=inputs,outputs=outputs)) metamodel.a = 3. metamodel.b = 5. metamodel.train_next = True metamodel.run() inputs = [('meta2.a',metamodel.a),('meta2.b',metamodel.b)] outputs = [('meta2.c',metamodel.c.mu),('meta2.d',metamodel.d.mu)] cases.append(Case(inputs=inputs,outputs=outputs)) case_iter = ListCaseIterator(cases) metamodel2 = MetaModel() metamodel2.name = 'meta2' metamodel2.default_surrogate = KrigingSurrogate() metamodel2.model = Simple() metamodel2.recorder = DumbRecorder() metamodel2.warm_start_data = case_iter metamodel2.a = simple.a = 1 metamodel2.b = simple.b = 2 metamodel.train_next = True metamodel2.run() simple.run() self.assertEqual(metamodel2.c.getvalue(), 3.) self.assertEqual(metamodel2.d.getvalue(), -1.) self.assertEqual(metamodel2.c.getvalue(), simple.c) self.assertEqual(metamodel2.d.getvalue(), simple.d)
def test_multi_surrogate_models_bad_surrogate_dict(self): metamodel = MetaModel() metamodel.name = 'meta' metamodel.surrogate = {'d':KrigingSurrogate()} try: metamodel.model = Simple() except ValueError,err: self.assertEqual('meta: No default surrogate model was specified. ' 'Either specify a default, or specify a surrogate model for all ' 'outputs',str(err))
def test_multi_surrogate_models_bad_surrogate_dict(self): metamodel = MetaModel() metamodel.name = 'meta' metamodel.sur_d = KrigingSurrogate() try: metamodel.model = Simple() except RuntimeError,err: self.assertEqual("meta: No default surrogate model is defined and the following outputs do not have a surrogate model: ['c']. " "Either specify default_surrogate, or specify a surrogate model for all " "outputs.",str(err))
def test_multi_surrogate_models_bad_surrogate_dict(self): metamodel = MetaModel() metamodel.name = 'meta' metamodel.surrogate = {'d': KrigingSurrogate()} try: metamodel.model = Simple() except ValueError, err: self.assertEqual( 'meta: No default surrogate model was specified. ' 'Either specify a default, or specify a surrogate model for all ' 'outputs', str(err))
def test_multi_surrogate_models_bad_surrogate_dict(self): metamodel = MetaModel() metamodel.name = "meta" metamodel.surrogate = {"d": KrigingSurrogate()} try: metamodel.model = Simple() except ValueError, err: self.assertEqual( "meta: No default surrogate model was specified. " "Either specify a default, or specify a surrogate model for all " "outputs", str(err), )
def test_reset_training_data_event(self): metamodel = MetaModel() metamodel.name = 'meta' metamodel.surrogate = {'default':KrigingSurrogate()} metamodel.model = Simple() metamodel.recorder = DumbRecorder() simple = Simple() metamodel.a = 1. metamodel.b = 2. metamodel.train_next = True metamodel.run() metamodel.a = 2. metamodel.b = 3. metamodel.train_next = True metamodel.run()
def test_reset_training_data_event(self): metamodel = MetaModel() metamodel.name = 'meta' metamodel.surrogate = {'default': KrigingSurrogate()} metamodel.model = Simple() metamodel.recorder = DumbRecorder() simple = Simple() metamodel.a = 1. metamodel.b = 2. metamodel.train_next = True metamodel.run() metamodel.a = 2. metamodel.b = 3. metamodel.train_next = True metamodel.run()
def test_multi_surrogate_models(self): metamodel = MetaModel() metamodel.name = "meta" metamodel.surrogate = {"d": KrigingSurrogate(), "c": LogisticRegression()} metamodel.model = Simple() metamodel.recorder = DumbRecorder() simple = Simple() metamodel.a = simple.a = 1.0 metamodel.b = simple.b = 2.0 metamodel.train_next = True simple.run() metamodel.run() metamodel.a = simple.a = 3.0 metamodel.b = simple.b = 4.0 metamodel.train_next = True simple.run() metamodel.run() self.assertTrue(isinstance(metamodel.d, NormalDistribution)) self.assertTrue(isinstance(metamodel.c, float))
def test_default_execute(self): metamodel = MetaModel() metamodel.name = "meta" metamodel.surrogate = {"default": KrigingSurrogate()} metamodel.model = Simple() metamodel.recorder = DumbRecorder() simple = Simple() metamodel.a = simple.a = 1.0 metamodel.b = simple.b = 2.0 metamodel.train_next = True simple.run() metamodel.run() metamodel.a = simple.a = 1.0 metamodel.b = simple.b = 2.0 metamodel.train_next = True simple.run() metamodel.run() self.assertEqual(metamodel.c.getvalue(), 3.0) self.assertEqual(metamodel.d.getvalue(), -1.0) self.assertEqual(metamodel.c.getvalue(), simple.c) self.assertEqual(metamodel.d.getvalue(), simple.d)
def test_multi_surrogate_models_bad_surrogate_dict(self): metamodel = MetaModel() metamodel.name = 'meta' metamodel.surrogate = {'d': KrigingSurrogate()} try: metamodel.model = Simple() except ValueError, err: self.assertEqual( 'meta: No default surrogate model was specified. ' 'Either specify a default, or specify a surrogate model for all ' 'outputs', str(err)) else: self.fail('ValueError expected') metamodel = MetaModel() metamodel.name = 'meta' metamodel.surrogate = {'d': KrigingSurrogate()} metamodel.includes = ['a', 'b', 'd'] try: metamodel.model = Simple() except ValueError, err: if 'meta: Dict provided for "surrogates" does not include a value for "c". All outputs must be specified' == str( err): self.fail( 'should not get a value error for variable c. It is not included in the metamodel' ) def test_multi_surrogate_models(self): metamodel = MetaModel() metamodel.name = 'meta' metamodel.surrogate = {
def test_multi_surrogate_models_bad_surrogate_dict(self): metamodel = MetaModel() metamodel.name = 'meta' metamodel.surrogate = {'d':KrigingSurrogate()} try: metamodel.model = Simple() except ValueError,err: self.assertEqual('meta: No default surrogate model was specified. ' 'Either specify a default, or specify a surrogate model for all ' 'outputs',str(err)) else: self.fail('ValueError expected') metamodel = MetaModel() metamodel.name = 'meta' metamodel.surrogate = {'d':KrigingSurrogate()} metamodel.includes = ['a','b','d'] try: metamodel.model = Simple() except ValueError,err: if 'meta: Dict provided for "surrogates" does not include a value for "c". All outputs must be specified'==str(err): self.fail('should not get a value error for variable c. It is not included in the metamodel') def test_multi_surrogate_models(self): metamodel = MetaModel() metamodel.name = 'meta' metamodel.surrogate = {'d':KrigingSurrogate(), 'c':LogisticRegression()} metamodel.model = Simple()
metamodel.name = "meta" metamodel.surrogate = {"d": KrigingSurrogate()} try: metamodel.model = Simple() except ValueError, err: self.assertEqual( "meta: No default surrogate model was specified. " "Either specify a default, or specify a surrogate model for all " "outputs", str(err), ) else: self.fail("ValueError expected") metamodel = MetaModel() metamodel.name = "meta" metamodel.surrogate = {"d": KrigingSurrogate()} metamodel.includes = ["a", "b", "d"] try: metamodel.model = Simple() except ValueError, err: if ( 'meta: Dict provided for "surrogates" does not include a value for "c". All outputs must be specified' == str(err) ): self.fail("should not get a value error for variable c. It is not included in the metamodel") def test_multi_surrogate_models(self): metamodel = MetaModel() metamodel.name = "meta" metamodel.surrogate = {"d": KrigingSurrogate(), "c": LogisticRegression()}