''' Created on Mar 15, 2012 .. codeauthor:: jhkwakkel <j.h.kwakkel (at) tudelft (dot) nl> ''' from analysis import clusterer from util import ema_logging from core import ModelEnsemble from test.scarcity_example import ScarcityModel if __name__ == "__main__": ema_logging.log_to_stderr(ema_logging.INFO) model = ScarcityModel(r'..\..\src\test', "fluCase") ensemble = ModelEnsemble() ensemble.set_model_structure(model) ensemble.parallel = True results = ensemble.perform_experiments(200) clusterer.cluster(data=results, outcome='relative market price', distance='gonenc', cMethod='maxclust', cValue=5, plotDendrogram=False)
''' This class represents a simple example of how one can extent the basic ModelStructureInterface in order to do EMA on a simple model coded in Python directly ''' #specify uncertainties uncertainties = [ ParameterUncertainty((0.1, 10), "x1"), ParameterUncertainty((-0.01, 0.01), "x2"), ParameterUncertainty((-0.01, 0.01), "x3") ] #specify outcomes outcomes = [Outcome('y')] def model_init(self, policy, kwargs): pass def run_model(self, case): """Method for running an instantiated model structure """ self.output[ self.outcomes[0].name] = case['x1'] * case['x2'] + case['x3'] if __name__ == '__main__': model = SimplePythonModel(None, 'simpleModel') #instantiate the model ensemble = ModelEnsemble() #instantiate an ensemble # ensemble.parallel = True ensemble.set_model_structure(model) #set the model on the ensemble results = ensemble.perform_experiments(1000) #run 1000 experiments