  The dynamicity of real-world systems poses a significant challenge to
deployed predictive machine learning (ML) models. Changes in the system on
which the ML model has been trained may lead to performance degradation during
the system's life cycle. Recent advances that study non-stationary environments
have mainly focused on identifying and addressing such changes caused by a
phenomenon called concept drift. Different terms have been used in the
literature to refer to the same type of concept drift and the same term for
various types. This lack of unified terminology is set out to create confusion
on distinguishing between different concept drift variants. In this paper, we
start by grouping concept drift types by their mathematical definitions and
survey the different terms used in the literature to build a consolidated
taxonomy of the field. We also review and classify performance-based concept
drift detection methods proposed in the last decade. These methods utilize the
predictive model's performance degradation to signal substantial changes in the
systems. The classification is outlined in a hierarchical diagram to provide an
orderly navigation between the methods. We present a comprehensive analysis of
the main attributes and strategies for tracking and evaluating the model's
performance in the predictive system. The paper concludes by discussing open
research challenges and possible research directions.
