GHVFDT-1.0.tar.gz (48.12 MB)
Download file


Download (0 kB)
posted on 07.09.2015, 12:43 authored by Robert LyonRobert Lyon

Gaussian Hellinger Very Fast Decision Tree (GH-VFDT)

An imbalanced data stream classifier, which uses the Hoeffding bound and Hellinger distance, to improve minority class recall.



The GH-VFDT utilises a decision tree split criterion, designed to improve minority class recall rates on imbalanced data streams, i.e. those streams where the class distribution is worse than 1:100. This implementation is built upon the Hoeffding Tree provided in MOA, thus a great deal of credit goes to the MOA team for their initial implementation and library. We greatly acknowledge their efforts.

For more details of the algorithm (bibtex reference below) see,

R. J. Lyon, J. M. Brooke, J. D. Knowles, B. W. Stappers. Hellinger Distance Trees for Imbalanced Streams In 22nd International Conference on Pattern Recognition, pages 1969-1974, Stockholm, Sweden, 2014. IEEE.


There are two version of the algorithm provided. The first version is designed to work with the MOA stream testing framework. It can be found in the MOA sub-directory of the distribution. The second version is a complete Java version that requires no external libraries, designed to operate outside of MOA. Use whichever version suits your needs.


MOA VERSION - The algorithm is designed to work directly with the MOA stream test framework. To use it with MOA, simply download the MOA files, and navigate to the MOA download directory. Make sure this directory contains the following files:

i) moa.jar ii) sizeofag.jar iii) weka.jar - optional, include if you intend to use WEKA classifiers.

Copy the GHVFDT.jar file to the MOA download directory, then execute the following command at the terminal/command line:

java -cp GHVFDT.jar:moa.jar -javaagent:sizeofag.jar moa.gui.GUI

or if also using WEKA classifiers,

java -cp GHVFDT.jar:moa.jar:weka.jar -javaagent:sizeofag.jar moa.gui.GUI

When MOA starts, the GH-VFDT will be included in the list of classifiers available for testing.

Alternatively this algorithm can be used outside of MOA. Please see our Stuffed framework for a simple example of how this is possible. Stuffed is a wrapper for WEKA and MOA classifiers that enables evaluation on large, unlabelled data sets. Please see:


Find the file in the Java directory. This is a complete example showing how to run and test the algorithm.

Citing our work

Please use the following citation if you make use of this algorithm and cite the algorithm too using the figure DOI:

@inproceedings{Lyon:2014:jk, author = {{Lyon}, R.~J. and {Knowles}, J.~D. and {Brooke}, J.~M. and {Stappers}, B.~W.}, title = {{Hellinger Distance Trees for Imbalanced Streams}}, booktitle = {22nd IEEE International Conference on Pattern Recognition}, series = {ICPR '14}, year = {2014}, month = {August}, pages = {1969-1974}, location = {Stockholm, Sweden}, publisher = {IEEE} }


This work was supported by grant EP/I028099/1 for the University of Manchester Centre for Doctoral Training in Computer Science, from the UK Engineering and Physical Sciences Research Council (EPSRC).