gov.sandia.cognition.learning.function.kernel
Interface Kernel<InputType>

Type Parameters:
InputType - The type of the input to the Kernel. For example, Vector.
All Superinterfaces:
Cloneable, CloneableSerializable, Serializable
All Known Implementing Classes:
ExponentialKernel, LinearKernel, NormalizedKernel, PolynomialKernel, ProductKernel, RadialBasisKernel, ScalarFunctionKernel, SigmoidKernel, SumKernel, VectorFunctionKernel, WeightedKernel, ZeroKernel

@CodeReview(reviewer="Kevin R. Dixon",
            date="2009-07-08",
            changesNeeded=false,
            comments="Looks fine.")
public interface Kernel<InputType>
extends CloneableSerializable

The Kernel interface the functionality required from an object that implements a kernel function. A kernel is a function that takes two arguments and returns a double that is equivalent to the inner-product between two vectors in a high-dimensional space. That is, a kernel must satisfy Mercer's conditions and produce a matrix that is positive semi-definite. Typically the inner-product is not actually computed by creating the high-dimensional representation, but instead is computed quickly such that the result would be equivalent to operating in that high-dimensional space.

Since:
2.0
Author:
Justin Basilico

Method Summary
 double evaluate(InputType x, InputType y)
          The role of a kernel is to evaluate some function that is equivalent to an inner product in some vector space.
 
Methods inherited from interface gov.sandia.cognition.util.CloneableSerializable
clone
 

Method Detail

evaluate

double evaluate(InputType x,
                InputType y)
The role of a kernel is to evaluate some function that is equivalent to an inner product in some vector space. The kernel must satisfy Mercer's conditions in that the kernel matrix must be positive semi-definite.

Parameters:
x - The first item.
y - The second item.
Returns:
The kernel evaluated on the two given objects.