1. A method for generating one or more prediction models for a workflow composed of a plurality of activities, comprising: extracting one or more input features from input data from a plurality of previous executions of said plurality of activities and extracting one or more output features from output data from said plurality of previous executions of said plurality of activities, wherein said plurality of activities execute in one or more computing devices; automatically learning, using at least one processing device, a plurality of prediction functions from one or more input features and one or more output features of said workflow, wherein each of said prediction functions predicts at least one of said output features of at least one of said plurality of activities of said workflow based on one or more of said input features of said at least one activity of said workflow; selecting, using said at least one processing device, one of said plurality of prediction functions for each of said plurality of activities in said workflow based on a particular goal and a succession of said plurality of activities according to a definition of said workflow to generate a selected subset of prediction functions; combining, using said at least one processing device, said selected subset of said plurality of prediction functions to generate said one or more prediction models based on the succession of said plurality of activities according to the definition of said workflow, wherein each of said one or more prediction models predicts a final output feature of said workflow based on one or more of said input features extracted from one or more initial inputs of said workflow; and selecting an instantiation of said workflow for a given input and said particular goal by evaluating a plurality of said one or more prediction models.