We propose:
-An Online, adaptive Filtering-based Change Detection (OFCD) algorithm in "OFCD" ("singleChannel_detection_fixed.m" and "singleChannel_detection_increasing.m")
-An extension of our method (OFCD) based on a Cooperative scheme between multiple sensors (COFCD) in "COFCD" (multiChannels_detection_increasing_coop.m" and "multiChannels_detection_fixed_coop.m")
We compare our algorithm to the following:
-baseline1: CUSUM with recursive form p. 6 (it is implemented it in a sub-optimal form from p.11 in same reference) Reference: Granjon, P. (2012). The cusum algorithm a small review. Gipsa-Lab, Grenoble, France, Team SAIGA. The implementaion is based on calaulating instantaneous log-likelihood: s(n) using equ 1.19 in p.10 in the same reference.
-baseline2: It is Algorithm 5: CUSUM Two-sided with recursive form p. 17 Version. The algorithm was implemented for a fixed/increasing window size in "baseline2_alg5_CUSUM17_fixed.m" and "baseline2_alg5_CUSUM17_increasing.m" scripts, respectively Reference: Granjon, P. (2012). The cusum algorithm a small review. Gipsa-Lab, Grenoble, France, Team SAIGA.
-Baseline 3: RuLSIF (a change-point detection by relativedensity ratio estimation) Reference: Liu, S., Yamada, M., Collier, N., & Sugiyama, M. (2013). Change-point detection in time-series data by relative density-ratio estimation. Neural Networks, 43, 72-83.
Note:
-We implemented baseline 1 and 2 and baseline 3 (baseline3/change_detection) is available by the authors of the ref mentioned above. In (baseline3/change_detection),I added only "demo_yasmin.m" and "demo_yasmin_db1.m" to provide a fair comparison by using the authors' implemetation on my generated data ("demo_yasmin.m") and real-word-data ("demo_yasmin_db1.m")
The algorithm is tested on:
-Synthetic data generated by the script in "generatedata" directory
-Real-world data in "real-world-dataset" directory
Folder description:
-utility has a SplitVec script, that we used to split vector in real-world data (the script license is also included)
-addpath_files.m : it is the file to add the path of all directories/sub-directories into matlab path