  Analysis of large data collections using popular machine learning and
statistical algorithms has been a topic of increasing research interest. A
typical analysis workload consists of applying an algorithm to build a model on
a data collection and subsequently refining it based on the results.
  In this paper we introduce model materialization and incremental model reuse
as first class citizens in the execution of analysis workloads. We materialize
built models instead of discarding them in a way that can be reused in
subsequent computations. At the same time we consider manipulating an existing
model (adding or deleting data from it) in order to build a new one. We discuss
our approach in the context of popular machine learning models. We specify the
details of how to incrementally maintain models as well as outline the suitable
optimizations required to optimally use models and their incremental
adjustments to build new ones. We detail our techniques for linear regression,
naive bayes and logistic regression and present the suitable algorithms and
optimizations to handle these models in our framework.
  We present the results of a detailed performance evaluation, using real and
synthetic data sets. Our experiments analyze the various trade offs inherent in
our approach and demonstrate vast performance benefits.
