MLPACK  1.0.7
Public Member Functions | Private Attributes | List of all members
mlpack::kernel::GaussianKernel Class Reference

The standard Gaussian kernel. More...

Public Member Functions

 GaussianKernel ()
 Default constructor; sets bandwidth to 1.0. More...
 
 GaussianKernel (double bandwidth)
 Construct the Gaussian kernel with a custom bandwidth. More...
 
double Bandwidth () const
 Get the bandwidth. More...
 
void Bandwidth (const double bandwidth)
 Modify the bandwidth. More...
 
template<typename VecType >
double ConvolutionIntegral (const VecType &a, const VecType &b)
 Obtain a convolution integral of the Gaussian kernel. More...
 
template<typename VecType >
double Evaluate (const VecType &a, const VecType &b) const
 Evaluation of the Gaussian kernel. More...
 
double Evaluate (double t) const
 Evaluation of the Gaussian kernel given the distance between two points. More...
 
double Gamma () const
 Get the precalculated constant. More...
 
double Normalizer (size_t dimension)
 Obtain the normalization constant of the Gaussian kernel. More...
 

Private Attributes

double bandwidth
 Kernel bandwidth. More...
 
double gamma
 Precalculated constant depending on the bandwidth; $ \gamma = -\frac{1}{2 \mu^2} $. More...
 

Detailed Description

The standard Gaussian kernel.

Given two vectors $ x $, $ y $, and a bandwidth $ \mu $ (set in the constructor),

\[ K(x, y) = \exp(-\frac{|| x - y ||^2}{2 \mu^2}). \]

The implementation is all in the header file because it is so simple.

Definition at line 43 of file gaussian_kernel.hpp.

Constructor & Destructor Documentation

mlpack::kernel::GaussianKernel::GaussianKernel ( )
inline

Default constructor; sets bandwidth to 1.0.

Definition at line 49 of file gaussian_kernel.hpp.

mlpack::kernel::GaussianKernel::GaussianKernel ( double  bandwidth)
inline

Construct the Gaussian kernel with a custom bandwidth.

Parameters
bandwidthThe bandwidth of the kernel ( $\mu$).

Definition at line 57 of file gaussian_kernel.hpp.

Member Function Documentation

double mlpack::kernel::GaussianKernel::Bandwidth ( ) const
inline

Get the bandwidth.

Definition at line 120 of file gaussian_kernel.hpp.

References bandwidth.

void mlpack::kernel::GaussianKernel::Bandwidth ( const double  bandwidth)
inline

Modify the bandwidth.

This takes an argument because we must update the precalculated constant (gamma).

Definition at line 124 of file gaussian_kernel.hpp.

References bandwidth, and gamma.

template<typename VecType >
double mlpack::kernel::GaussianKernel::ConvolutionIntegral ( const VecType &  a,
const VecType &  b 
)
inline

Obtain a convolution integral of the Gaussian kernel.

Parameters
a,firstvector
b,secondvector
Returns
the convolution integral

Definition at line 112 of file gaussian_kernel.hpp.

References Evaluate(), mlpack::metric::LMetric< Power, TakeRoot >::Evaluate(), and Normalizer().

template<typename VecType >
double mlpack::kernel::GaussianKernel::Evaluate ( const VecType &  a,
const VecType &  b 
) const
inline

Evaluation of the Gaussian kernel.

This could be generalized to use any distance metric, not the Euclidean distance, but for now, the Euclidean distance is used.

Template Parameters
VecTypeType of vector (likely arma::vec or arma::spvec).
Parameters
aFirst vector.
bSecond vector.
Returns
K(a, b) using the bandwidth ( $\mu$) specified in the constructor.

Definition at line 74 of file gaussian_kernel.hpp.

References mlpack::metric::LMetric< Power, TakeRoot >::Evaluate(), and gamma.

Referenced by ConvolutionIntegral().

double mlpack::kernel::GaussianKernel::Evaluate ( double  t) const
inline

Evaluation of the Gaussian kernel given the distance between two points.

Parameters
tThe distance between the two points the kernel is evaluated on.
Returns
K(t) using the bandwidth ( $\mu$) specified in the constructor.

Definition at line 87 of file gaussian_kernel.hpp.

References gamma.

double mlpack::kernel::GaussianKernel::Gamma ( ) const
inline

Get the precalculated constant.

Definition at line 131 of file gaussian_kernel.hpp.

References gamma.

double mlpack::kernel::GaussianKernel::Normalizer ( size_t  dimension)
inline

Obtain the normalization constant of the Gaussian kernel.

Parameters
dimension
Returns
the normalization constant

Definition at line 99 of file gaussian_kernel.hpp.

References bandwidth, and M_PI.

Referenced by ConvolutionIntegral().

Member Data Documentation

double mlpack::kernel::GaussianKernel::bandwidth
private

Kernel bandwidth.

Definition at line 135 of file gaussian_kernel.hpp.

Referenced by Bandwidth(), and Normalizer().

double mlpack::kernel::GaussianKernel::gamma
private

Precalculated constant depending on the bandwidth; $ \gamma = -\frac{1}{2 \mu^2} $.

Definition at line 139 of file gaussian_kernel.hpp.

Referenced by Bandwidth(), Evaluate(), and Gamma().


The documentation for this class was generated from the following file: