1. Apparatus for classifying data from a test data stream, comprising: a memory; and at least one processor coupled to the memory and operative to: (i) receive a stream of training data having class labels, wherein the stream of training data is separate and distinct from the test data stream; (ii) determine one or more class-specific clusters of the training data by adding each data point to a closest class-specific cluster and updating statistics of the class-specific cluster as each data point from the stream of training data is received; (iii) store the one or more class-specific clusters of the training data on a periodic basis; (iv) classify at least one test instance of the test data stream using the one or more stored class-specific clusters through the application of a nearest neighbor classification process, in accordance with a determined optimal time horizon that provides greatest dynamic classification accuracy, wherein the optimal time horizon is determined using at least two cluster states of the one or more class-specific clusters of the training data; and (v) output one or more classification results of the at least one test instance in the form of at least one class label.