1. A method comprising: receiving a first set of factors and a data set associated with the first set of factors a factor from the first set of factors measuring an aspect of the data set; calculating, based on the data set, an importance value of each factor in the first set of factors, the calculating of an importance value of each factor in the first set of factors comprising: generating a function that approximates results associated with the data set, determining that variation of a first factor from the first set of factors results in greater variation in the results associated with the data set as compared to variation of a second factor from the first set of factors, and assigning a higher importance value to the first factor from as compared to an importance value for the second factor from the first set of factors; ranking the first set of factors based on the importance value of each factor in the first set of factors; selecting, based on the ranking, factors to be included in a reduced set of factors, the reduced set of factors having fewer factors than the first set of factors; and generating, using a genetic algorithm, a prediction function based on the data set and the reduced set of factors, the reduced set of factors derived from the first set of factors.