MLPACK
1.0.11
|
The standard Gaussian kernel. More...
Public Member Functions | |
GaussianKernel () | |
Default constructor; sets bandwidth to 1.0. More... | |
GaussianKernel (const 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 (const 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 (const size_t dimension) |
Obtain the normalization constant of the Gaussian kernel. More... | |
std::string | ToString () const |
Convert object to string. More... | |
Private Attributes | |
double | bandwidth |
Kernel bandwidth. More... | |
double | gamma |
Precalculated constant depending on the bandwidth; ![]() | |
The standard Gaussian kernel.
Given two vectors ,
, and a bandwidth
(set in the constructor),
The implementation is all in the header file because it is so simple.
Definition at line 43 of file gaussian_kernel.hpp.
|
inline |
Default constructor; sets bandwidth to 1.0.
Definition at line 49 of file gaussian_kernel.hpp.
|
inline |
Construct the Gaussian kernel with a custom bandwidth.
bandwidth | The bandwidth of the kernel ( ![]() |
Definition at line 57 of file gaussian_kernel.hpp.
|
inline |
|
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.
|
inline |
Obtain a convolution integral of the Gaussian kernel.
a,first | vector |
b,second | vector |
Definition at line 112 of file gaussian_kernel.hpp.
References Evaluate(), mlpack::metric::LMetric< Power, TakeRoot >::Evaluate(), and Normalizer().
|
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.
VecType | Type of vector (likely arma::vec or arma::spvec). |
a | First vector. |
b | Second vector. |
Definition at line 74 of file gaussian_kernel.hpp.
References mlpack::metric::LMetric< Power, TakeRoot >::Evaluate(), and gamma.
Referenced by ConvolutionIntegral().
|
inline |
Evaluation of the Gaussian kernel given the distance between two points.
t | The distance between the two points the kernel is evaluated on. |
Definition at line 87 of file gaussian_kernel.hpp.
References gamma.
|
inline |
Get the precalculated constant.
Definition at line 131 of file gaussian_kernel.hpp.
References gamma.
|
inline |
Obtain the normalization constant of the Gaussian kernel.
dimension |
Definition at line 99 of file gaussian_kernel.hpp.
References bandwidth, and M_PI.
Referenced by ConvolutionIntegral().
|
inline |
|
private |
Kernel bandwidth.
Definition at line 144 of file gaussian_kernel.hpp.
Referenced by Bandwidth(), Normalizer(), and ToString().
|
private |
Precalculated constant depending on the bandwidth; .
Definition at line 148 of file gaussian_kernel.hpp.
Referenced by Bandwidth(), Evaluate(), and Gamma().