An evolutionary algorithm for clustering data streams with a variable number of clusters - Andrade Silva, Jonathan de; Hruschka, Eduardo Raul; Gama, João (Expert systems with applications, 2017)
•An evolutionary algorithm for clustering data stream is proposed.•Our algorithm allows estimating k automatically from the data in an online fashion.•It monitors eventual degradation in the quality of the induced clusters.•Results show our algorithm correctly detects, and react to, changes in a data stream.•The proposed method is very competitive in terms of accuracy and time processing. Several algorithms for clustering data streams based on k-Means have been proposed in the literature. However, most of them assume that the number of clusters, k, is known a priori by the user and can be kept fixed throughout the data analysis process. Besides the difficulty in choosing k, data stream clustering imposes several challenges to be addressed, such as addressing non-stationary, unbounded data that arrive in an online fashion. In this paper, we propose a Fast Evolutionary Algorithm for Clustering data streams (FEAC-Stream) that allows estimating k automatically from data in an online fashion. FEAC-Stream uses the Page–Hinkley Test to detect eventual degradation in the quality of the induced clusters, thereby triggering an evolutionary algorithm that re-estimates k accordingly. FEAC-Stream relies on the assumption that clusters of (partially unknown) data can provide useful information about the dynamics of the data stream. We illustrate the potential of FEAC-Stream in a set of experiments using both synthetic and real-world data streams, comparing it to four related algorithms, namely: CluStream-OMRk, CluStream-BkM, StreamKM++-OMRk and StreamKM++-BkM. The obtained results show that FEAC-Stream provides good data partitions and that it can detect, and accordingly react to, data changes.