1. A method comprising: receiving a first set of factors and a data set associated with the first set of factors; calculating, based on the data set, an importance value of each factor in 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, a second set of factors, the second 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 second set of factors.