1. A computer-implemented method for identifying patterns in data, the method comprising: (a) inputting into a classifier a training set having known outcomes, the classifier comprising a decision function having a plurality of weights, each having a weight value, wherein the training set comprises features corresponding to the data and wherein each feature has a corresponding weight; (b) optimizing the plurality of weights so that classifier error is minimized; (c) computing ranking criteria using the optimized plurality of weights; (d) eliminating at least one feature corresponding to the smallest ranking criterion; (e) repeating steps (a) through (d) for a plurality of iterations until a subset of features of pre-determined size remains; and (f) inputting into the classifier a live set of data wherein the features within the live set are selected according to the subset of features.