Thursday, 28 August 2008

GPULib: Kernel K-means




















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 .

Sunday, 10 August 2008

Kernelized PCA with GPULib

I haven't had much time lately to play with GPULib, although there are plenty of ENVI/IDL apps that I want to experiment with. An ENVI extension for kernelized PCA (nonlinear principal components analysis using a radial basis kernel, mentioned in an earlier blog) can be downloaded from my software website. It is pretty rudimentary, but illustrates the use of quite a few GPULib functions. See also this short ppt on nonlinear PCA with GPULib.