1. A method for learning models from scarce and/or skewed training data, comprising: building a classifier based on accumulated training data; estimating a most likely current class distribution using historical training data; and selecting historical classifiers from a memory device based on the most likely class distribution, wherein the classifiers are combined based on time, space and size to form a set of classifiers used to classify streaming data with evolving concepts.