This repository contains the implementation of the methods proposed in the paper Unsupervised Unlearning of Concept Drift with Autoencoders by André Artelt, Kleanthis Malialis, Christos G. Panayiotou, Marios M. Polycarpou and Barbara Hammer.
The experiments, as described in the paper, are implemented in the folder Implementation/.
The phenomena of concept drift refers to a change of the data distribution affecting the data stream of future samples -- such non-stationary environments are often encountered in the real world. Consequently, learning models operating on the data stream might become obsolete, and need costly and difficult adjustments such as retraining or adaptation. Existing methods to address concept drift are, typically, categorised as active or passive. The former continually adapt a model using incremental learning, while the latter perform a complete model retraining when a drift detection mechanism triggers an alarm. We depart from the traditional avenues and propose for the first time an alternative approach which "unlearns" the effects of the concept drift. Specifically, we propose an autoencoder-based method for "unlearning" the concept drift in an unsupervised manner, without having to retrain or adapt any of the learning models operating on the data.
The hanoi data set must be prepared as follows:
- Download the Hanoi scenarios from LeakDB and put the scenarios in
Implementation/hanoi_data/LeakDB/Hanoi_CMH/
. - Create the folders
Implementation/hanoi-data/hanoi_clean/
andImplementation/hanoi-data/hanoi_faultysensor/
- Run Implementation/hanoi-data/datagenerator.py
- Run Implementation/hanoi-data/generate_sensor_fault.py
The experiments on the digit data set are implemented in Implementation/experiments_digits.py. The experiments on the hanoi data set are implemented in Implementation/experiments_hanoi.py -- make sure you preared the data as described above!
- Python3.8
- Packages as listed in Implementation/REQUIREMENTS.txt
MIT license - See LICENSE.
You can cite the version on arXiv.