Adaptive Gaussian Filtering / News: Recent posts

Move to github

This project is being moved to github. In the process, I am merging it with two other libaries: libpetey and ctraj since the three libraries have a number of dependencies. You can find the project here:

Posted by Peter Mills 2015-07-27

Bug report

There is a very serious bug in the class borders sampling routines affecting small datasets only. Discovering this bug has influenced my decision to start writing unit-tests as well as improving test coverage overall (black box as well as white box testing). See my blog post: Test driven development The library is due for a new release anyway since there are many new developments, including continuum retrievals based on classification results. Until that time, however, you can download the affected file, "", directly from the SVN repository.... read more

Posted by Peter Mills 2015-07-06

Use libAGF to accelerate your LIBSVM models

A major new feature of libAGF is the ability to build arbitrary multi-class classification models by combining LIBSVM binary models. These models can then be "accelerated" by converting them completely to libAGF-native, border-sampling models. See my blog post for details.

Posted by Peter Mills 2014-12-13

Version 0.9.8

New in this version:

  • bug fixes: svm file conversion works properly and is more general

  • non-hierarchical multi-borders has 3 options for solving for the conditional
    probabilities: matrix inversion, voting, and matrix inversion over-ridden
    by voting, with re-normalization

  • multi-borders now works with external binary classifiers (especially LIBSVM)

  • random numbers resolve a tie when selecting classes based on probabilities... read more

Posted by Peter Mills 2014-12-06

Version 0.9.7 released

In this version:

  • hierarchical clustering

  • multi-class classification using a recursive control language

For more details, check the NEWS file.

Posted by Peter Mills 2014-04-15

New release pending

I'm ramping up for a big new release. There are many changes and (hopefully) improvements, but the most significant is the addition of "multi-borders" classification: multi-class class classification with the AGF borders technique. I've tested the technique already and I'm very pleased with just how well it works. Also on the plate: improved pre-processing including singular value decomposition (SVD), dendrograms, re-organizing the library and main routines, as well as two new test cases. Getting all this up and running is a fair bit of effort, so the release may not be for a while yet.

Posted by Peter Mills 2014-03-22

Many thanks

to those who submitted bug reports. The previous version was loaded with them. Hopefully the latest release should be a little more stable.

Posted by Peter Mills 2012-12-12

Version 0.9.6 released

Not much really new here. The most exciting is a script for validating probablility density function estimates. It works by first generating a simulated dataset using the metropolis method. The distribution of this simulated dataset should roughly match that of the training data. The training dataset is then split up into two or more subsets and PDF's estimated at each point in the simulated dataset and a cross correlation matrix calculated. Note that parameters used for testing (k, W) will need to be scaled up to match the full size of the training dataset--i.e. multiply by the number of divisions.

Posted by Peter Mills 2012-12-12


The conversion utility, svm2agf, will allow you to convert many of the datasets collected on the LIBSVM website:
for comparison and testing.

Posted by Peter Mills 2011-11-09

Patch released

One of the file conversion utilities (svm2agf -- for converting LIBSVM-compatible ASCII files to libagf-compatible binary files) did not work as expected. The patch addresses this problem.

Posted by Peter Mills 2011-11-09

libagf 0.9.4 released

New in this version:

- all functions (except IO) have been templated

- all variables in main routines have been typedef'd

- improved file conversion utilities

Posted by Peter Mills 2011-11-08

Version 0.9.3 released

Several changes to this version: the "libpetey" library is no longer part of the "libagf" distribution. Instead, look for it in "msci". Nonetheless, I have placed the latest version in the download repository. Also, the class borders codes will no longer generate duplicate border samples.

Posted by Peter Mills 2011-05-02

AGF paper accepted

A paper on the AGF algorithm has been accepted for publication in the International Journal of Remote Sensing. It is entitled, "Efficient statistical classification of satellite measurements," and should be appearing in print shortly.

Posted by Peter Mills 2010-07-19

Planned improvements

1. The project website boasts about performing k-nearest-neighbours searches in n log k time. Without any initial binning, this could, in fact, be done in only n time if the selection algorithm were updated to something based on a quicksort. Code already exists in the repository. Tests show a significant speed improvement.
2. Updating the n-fold cross-validation program to work with pdf estimation and non-linear regression.
3. There may be duplicates in the border samples, especially with small datasets. This needs to be fixed.

Posted by Peter Mills 2010-07-19

Website updated

The project website has been updated. While the basic content remains the same, figures have been improved for better viewing. A donation button has been added. Also: it works properly on Internet Explorer! The previous version had only been tested on Firefox.

Posted by Peter Mills 2010-02-18

Paper on isoline retrieval published

AGF has been used to retrieve water vapour in the upper troposphere. The work has been published in Computers & Geosciences, volume 35, pages 2020-2031. See project website for details.

Posted by Peter Mills 2010-02-18

Bug reporting

If you have any problems with this software, please e-mail me at:
If you can describe the problem clearly and succinctly, I can probably have a patch ready for you within the next day or two.

Posted by Peter Mills 2009-09-04

We now have clustering!

A simple clustering analysis program has been added to the mix. My initial goal was to use a threshold density and find all the iso-surfaces for that density, possibly using an algorithm similar to that for finding class borders. This should be simpler and faster than a hierarchical clustering, although less general since the analysis will need to be repeated every time we try a different threshold. I didn't want to just write a hierarchichal clustering algorithm since it doesn't really "fit" with the rest of the library.... read more

Posted by Peter Mills 2009-09-01

New release for libagf--0.92

The new release includes many bug fixes--they were legion--but also some improved functionality.

Direct classification routines will now return the joint probabilities in addition to conditional probabilities. Since you can use either for classification, the joint probabilities provide more information.

It is now possible to search for a class border at some point other than R=0. This is useful if the classes differ greatly in size or if the relative number of samples do not reflect the actual class sizes.... read more

Posted by Peter Mills 2009-09-01

Planned improvements

Through my own use of the software, at least two short-comings have become apparent:
1. when the classes are broadly separated, class_borders fails to converge. The fix is likely fairly simple, but will involve a minor "hack."
2. to calculate joint probabilities, you need to make two calls: one to a classification routine and then another to a pdf calculation routine. This is wasteful as it could be done in a single step.

Posted by Peter Mills 2009-06-25

Bug reporting and attribution

The libagf project has been sitting on sourceforge for over two years now and I've witnessed a steady stream of downloads throughout that time. In spite of this I have yet see a single e-mail either asking for help, requesting bug fixes, thanking me or simply informing me of its use.

If you use this package in your work, please help spread the word by referencing either the website, the included documentation or the following paper:
Peter Mills 2009, "Isoline retrieval: An optimal method for validation of advected contours." Computers & Geosciences, in press (available online).

Posted by Peter Mills 2009-06-25

New release

Version 0.91 has been released. No substantial changes, just bug fixes.

Posted by Peter Mills 2009-06-25

libagf website created

For a concise introduction to the method along with interesting and original applications, visit:

Posted by Peter Mills 2007-11-03

First release of libagf.

The first release of the Adaptive Gaussian Filtering library (libagf) is now available. Very high performance Gaussian kernel estimators and KNN algorithms. Training can be done in as little as 1/25 the time and classifications in better than 1/100 the time as LIBSVM.

Posted by Peter Mills 2007-10-28

libagf: a powerful new statistical classification software

libagf, a suite of software for statistical classification, PDF estimation and non-linear regression, has just been posted to sourceforge. The software implements an algorithm called Adaptive Gaussian Filtering (AGF), a high speed, variable bandwidth kernel estimation technique. Stay tuned for the first official release!

Posted by Peter Mills 2007-10-19

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks