1. A method for optimizing a database of sample records for the training and testing of a prediction algorithm, comprising: defining a set of one or more distributions of the database records onto respective training and testing subsets; using the defined set of distributions to train and test a first generation set of one or more prediction algorithms and assigning a fitness score to each; feeding the set of prediction algorithms to an evolutionary algorithm which generates a set of one or more second generation prediction algorithms and assigns a fitness score to each; and continuing to feed each generational set of prediction algorithms to the evolutionary algorithm until a termination event occurs; where said termination event is at least one of a prediction algorithm is generated with a fitness score equal to or exceeding a defined minimum value, the maximum fitness score of successive generational sets of prediction algorithms converging to a given value, and a certain number of generations having been generated.