MLPACK
1.0.10
|
An example kernel function. More...
Public Member Functions | |
ExampleKernel () | |
The default constructor, which takes no parameters. More... | |
std::string | ToString () const |
Returns a string for the kernel object; in this case, with only the memory address for the kernel. More... | |
Static Public Member Functions | |
template<typename VecType > | |
static double | ConvolutionIntegral (const VecType &a, const VecType &b) |
Obtains the convolution integral [integral K(||x-a||)K(||b-x||)dx] for the two vectors. More... | |
template<typename VecType > | |
static double | Evaluate (const VecType &a, const VecType &b) |
Evaluates the kernel function for two given vectors. More... | |
static double | Normalizer () |
Obtains the normalizing volume for the kernel with dimension $dimension$. More... | |
An example kernel function.
This is not a useful kernel, but it implements the two functions necessary to satisfy the Kernel policy (so that a class can be used whenever an MLPACK method calls for a typename Kernel
template parameter.
All that is necessary is a constructor and an Evaluate()
function. More methods could be added; for instance, one useful idea is a constructor which takes parameters for a kernel (for instance, the width of the Gaussian for a Gaussian kernel). However, MLPACK methods cannot count on these various constructors existing, which is why most methods allow passing an already-instantiated kernel object (and by default the method will construct the kernel with the default constructor). So, for instance,
will set up KDE using a Gaussian kernel with a width of 5.0, but
will create the kernel with the default constructor. It is important (but not strictly mandatory) that your default constructor still gives a working kernel.
Evaluate()
can (and should) be declared static. However, for greater generalization, MLPACK methods expect all kernels to require state and hence must store instantiated kernel functions; this is why a default constructor is necessary. Definition at line 94 of file example_kernel.hpp.
|
inline |
The default constructor, which takes no parameters.
Because our simple example kernel has no internal parameters that need to be stored, the constructor does not need to do anything. For a more complex example, see the GaussianKernel, which stores an internal parameter.
Definition at line 103 of file example_kernel.hpp.
|
inlinestatic |
Obtains the convolution integral [integral K(||x-a||)K(||b-x||)dx] for the two vectors.
In this case, because our simple example kernel has no internal parameters, we can declare the function static. For a more complex example which cannot be declared static, see the GaussianKernel, which stores an internal parameter.
VecType | Type of vector (arma::vec, arma::spvec should be expected). |
a | First vector. |
b | Second vector. |
Definition at line 144 of file example_kernel.hpp.
|
inlinestatic |
Evaluates the kernel function for two given vectors.
In this case, because our simple example kernel has no internal parameters, we can declare the function static. For a more complex example which cannot be declared static, see the GaussianKernel, which stores an internal parameter.
VecType | Type of vector (arma::vec, arma::spvec should be expected). |
a | First vector. |
b | Second vector. |
Definition at line 117 of file example_kernel.hpp.
|
inlinestatic |
Obtains the normalizing volume for the kernel with dimension $dimension$.
In this case, because our simple example kernel has no internal parameters, we can declare the function static. For a more complex example which cannot be declared static, see the GaussianKernel, which stores an internal parameter.
dimension | the dimension of the space. |
Definition at line 157 of file example_kernel.hpp.
|
inline |
Returns a string for the kernel object; in this case, with only the memory address for the kernel.
If your kernel has any members, your ToString() method should include those as neccessary as well.
Definition at line 124 of file example_kernel.hpp.