# Fast Reaction to Sudden Concept Drift in the Absence of Class Labels
## 4 Drift Detector Evaluation  
The performance of DMDDM-S is evaluated against various drift detectors, namely, DDM, EDDM, FHDDM, PH Test, SEED, STEPD and RDDM. The main reasons for choosing these supervised methods over semisupervised methods are: (_i_) the limited access to the source code of some works, and (_ii_) we want to show the strengths of DMDDM-S, which can detect drifts faster when only 50% of the data is labelled with minimal consumption in terms of memory and run time than the existing methods that use 100% of labelled data. Following the literature [13; 14; 15], we use the three synthetic datasets ([[https://github.com/alipsgh/data_streams](https://github.com/alipsgh/data_streams)]([https://github.com/alipsgh/data_streams](https://github.com/alipsgh/data_streams))) for the evaluation, namely Mixed, Sine1 and Sine2, with two classes and holding 100,000 instances. In addition, 10% of noise is added to each dataset. By doing this, we can determine how robust a drift detector is against a noisy data stream. Thus, the main advantage of using a synthetic dataset is that we are able to determine the true location of drifts in a data stream. * Mixed: This dataset has two numeric attributes, \(x\) and \(y\), uniformly distributed in [0, 1] as well as two Boolean attributes \(v\) and \(w\). The instances are classified as positive if at least two of the three following conditions are satisfied: \(v,w,y<0.5+0.3\times\sin(2\pi x)\).The classification is reversed after drifts. Sudden drifts happen at every 20,000 instances. * Sine1: This comes with two attributes (\(x\) and \(y\)), which are uniformly distributed in [0, 1]. Following a function \(y=sin(x)\) for classification, any instances below the curve are classified as positive, while the others are classified as negative, till the first drift occurs. At every 20,000 instances, a drift will occur and then the classification is reversed. * Sine2: This comes with two attributes (\(x\) and \(y\)) which are uniformly distributed in [0, 1]. Following a function \(0.5+0.3\times\sin(3\times\pi\times x)\), instances under the curve are classified as positive while the other instances are classified as negative. At every 20,000 instances, a drift will occur and then the classification is reversed. Furthermore, the proposed algorithm and the ones used for comparison are implemented in Java as part of the Massive Online Analysis (We had to remove the label from some training instances (50%) to simulate a semisupervised environment. Where a semisupervised setting assumes some input (training), the instances will not be labelled) (MOA) framework [32]. The experiments are conducted on a machine equipped with Intel Core i7 @ 3.4 GHz with 16 GB of RAM running windows 10. To make the comparison more meaningful, we set the same parameter values for all the algorithms. For DMDDM-S, due to an experiment not mentioned in this work, we use the Hoeffding tree (HT) and Perceptron (PER) as our incremental classifiers. Because of their incremental nature, they are high-grade at describing changes over time. In addition, we use the PH test parameters (\(\lambda=100\), \(\delta=0\):1) as proposed in [16] and Forgetting factor (\(\alpha=0.9996\)). For base classifier consistency, all the compared drift detectors are run using Hoeffding tree (HT) and Perceptron with the default parameters as set in MOA (or as in the original papers). Regarding the evaluation process, recall the four requirements which need to be met by a model that operates in a nonstationary environment, hence we evaluate our detector and the competitors as shown in Figure 4. Figure 4 illustrates the DMDDM-S evaluation. The straight arrow represents the main stream of incoming data and the crosses show the real position of drifts. We calculate the delay of drift detection by defining a value \(\Delta\) that represents the length of an acceptable drift delay. This value works as a threshold to locate the distance of the detected drift from the real position of the drift.