On a given block \(t_{i}\), a set of \(N_{OS}=500\) overlapping samples (spikes) is selected for each available class \(j\), which is denoted as \(OS(C_{j}^{t_{i}})\). To create each set, we first choose the most recent \(N_{OS} / (1- p_{out})\) samples, and remove the proportion \(p_{out}=0.2\) of the spikes with the largest euclidean distance from the median waveform, as they could be seen as potential outliers. When less than \(N_{OS}\) spikes are available, the "synthetic minority over-sampling technique" \cite{Chawla_2002} is used to complete the set. On the following block \(t_{i+1}\), the spikes from all the overlapping sets \(OS(C_{j}^{t_{i}})\) are added to the \(N_{t_{i+1}}\)spikes before applying the sorting algorithm to that block. Figure \ref{685198} depicts the procedure for creating the overlapping sets on consecutive blocks with two drifting classes.