1. A computer-implemented method of generating a robust model of a system comprising: selecting a modeling function having a set of weights , wherein the modeling function has a complexity that is determined by a complexity parameter; receiving, via an input interface, model specification data of the modeling function for each of a plurality of values of the complexity parameter , ; retrieving a training data set from a memory; determining an associated set of weights of the modeling function such that a training error is minimized for a the training data set; determining an error for a cross validation data set for each set of weights associated with one of the plurality of values of the complexity parameter; and selecting the set of weights associated with a value of the complexity parameter that best satisfies a cross validation criteria ; , whereby the selected set of weights used with the modeling function provides the robust model , wherein the cross validation criteria comprises maximizing lift for the data in the cross validation set; and outputting the set weights via an output interface .