
Just like principal components analysis, the subject of previous posts, the well-known K-means clustering algorithm can be kernelized. Shawe-Taylor and Cristianini, in their excellent book Kernel Methods for Pattern Analysis, give Matlab code. Based on that I've written an ENVI extension for kernel K-means using the GPULib library. Here are some times for the multispectral image clustering shown above:
Without GPULib
-------------------
Kernel K-means
Thu Aug 28 19:44:12 2008
-------------------
input file juelich_august_29_pca
Number of Classes 8
elapsed time: 32.500000
Result written to memory
With GPULib
-------------------
Kernel K-means
Thu Aug 28 19:48:16 2008
-------------------
input file juelich_august_29_pca
Number of Classes 8
elapsed time: 4.0160000
Result written to memory
Speedup factor: 8 .
