Waikato / moa

MOA is an open source framework for Big Data stream mining. It includes a collection of machine learning algorithms (classification, regression, clustering, outlier detection, concept drift detection and recommender systems) and tools for evaluation.
http://moa.cms.waikato.ac.nz/
GNU General Public License v3.0
609 stars 353 forks source link

Addition of one-class classifiers to MOA #164

Closed richard-moulton closed 5 years ago

richard-moulton commented 5 years ago

This pull request consists the implementations of three one-class classifiers for use with MOA. These are as follows:

Autoencoder: A neural network that attempts to reconstruct the input. The autoencoder's structure is an input layer with one neuron for each non-class attribute, a hidden layer of two neurons and an output layer with one neuron for each non-class attribute. Partially modeled on Albert Bifet's Perceptron.java, also found in the MOA project. Includes a dependency on the Apache Commons Math linear algebra library.

Streaming Half-Space Trees: Implements Tan et al.'s Streaming Half-Space Trees one-class classifier [2].

Nearest Neighbour Description: A data stream adaptation of Tax's Nearest Neighbour Description, a one-class classifier based on the nearest neighbour method [3, Sec. 3.4.2].

These one-class classifiers were written for and used in my Master's thesis [1].

REFERENCES [1] R. H. Moulton, “Clustering to Improve One-Class Classifier Performance in Data Streams,” Master's thesis, University of Ottawa, 2018. [2] S. C. Tan, K. M. Ting, and T. F. Liu, “Fast anomaly detection for streaming data,” in IJCAI Proceedings-International Joint Conference on Artificial Intelligence, 2011, vol. 22, no. 1, pp. 1511–1516. [3] D. M. J. Tax, “One-Class Classification: Concept-learning in the absence of counter-examples.” PhD Thesis, Delft University of Technology, 2001.