public class NormalizingKernel extends NestedKernelPerforms a normalization on the results of a nested kernel.
This is equivalent to making the locations in feature space of the nested kernel unit vectors lying on a unit sphere. The dot product in feature space then becomes just
cos thetarather than
||a|| * ||b|| * cos thetaas both lengths are 1. The length of a in the feature space of kernel k is
sqrt( k(a, a) ), so that the normalizing kernel ends up calculating
k(a, b) / sqrt( k(a, a) * k(b, b) ).
As the values of k(x, x) are required repeatedly, it may be worth making the nested kernel a DiagonalCachingKernel.
- Thomas Down, Matthew Pocock
- See Also:
- Serialized Form
All Methods Instance Methods Concrete Methods Modifier and Type Method Description
evaluate(Object a, Object b)Return the dot product of two vectors in an arbitrary feature space.
evaluateDescription copied from interface:
SVMKernelReturn the dot product of two vectors in an arbitrary feature space. In this implementation, the `vectors' can actually be arbitrary objects.