yat
0.14.5pre
|
Interface Class for Kernels. More...
#include <yat/classifier/Kernel.h>
Public Member Functions | |
Kernel (const MatrixLookup &data, const KernelFunction &kf, const bool own=false) | |
Kernel (const MatrixLookupWeighted &data, const KernelFunction &kf, const bool own=false) | |
Kernel (const Kernel &kernel, const std::vector< size_t > &index) | |
virtual | ~Kernel (void) |
Destructor. More... | |
virtual double | operator() (const size_t row, const size_t column) const =0 |
const MatrixLookup & | data (void) const |
const MatrixLookupWeighted & | data_weighted (void) const |
double | element (const DataLookup1D &vec, const size_t i) const |
double | element (const DataLookupWeighted1D &vec, const size_t i) const |
virtual const Kernel * | make_kernel (const MatrixLookup &, const bool) const =0 |
virtual const Kernel * | make_kernel (const MatrixLookupWeighted &, const bool own=false) const =0 |
size_t | size (void) const |
number of samples | |
bool | weighted (void) const |
Protected Attributes | |
const MatrixLookup * | ml_ |
underlying data | |
const MatrixLookupWeighted * | mlw_ |
same as data_ if weifghted otherwise a NULL pointer | |
const KernelFunction * | kf_ |
type of Kernel Function e.g. Gaussian (aka RBF) | |
unsigned int * | ref_count_ |
unsigned int * | ref_count_w_ |
Interface Class for Kernels.
Class taking care of the kernel matrix, where is number of samples. Each element in the Kernel corresponds to the scalar product of the corresponding pair of samples. At the time being there are two kinds of kernels. Kernel_SEV that is optimized to be fast and Kernel_MEV that is preferable when dealing with many samples and memory might be a bottleneck. A KernelFunction defines what kind of scalar product the Kernel represents, e.g. a Polynomial Kernel of degree 1 means we are dealing with the ordinary linear scalar product.
theplu::yat::classifier::Kernel::Kernel | ( | const MatrixLookup & | data, |
const KernelFunction & | kf, | ||
const bool | own = false |
||
) |
Constructor taking the data matrix and KernelFunction as input. Each column in the data matrix corresponds to one sample and the Kernel matrix is built applying the KernelFunction on each pair of columns in the data matrix. If own is set to true, Kernel is owner of underlying data.
theplu::yat::classifier::Kernel::Kernel | ( | const MatrixLookupWeighted & | data, |
const KernelFunction & | kf, | ||
const bool | own = false |
||
) |
Constructor taking the data matrix (with weights) and KernelFunction as input. Each column in the data matrix corresponds to one sample and the Kernel matrix is built applying the KernelFunction on each pair of columns in the data matrix. If own is set to true, Kernel is owner of underlying data.
theplu::yat::classifier::Kernel::Kernel | ( | const Kernel & | kernel, |
const std::vector< size_t > & | index | ||
) |
The new kernel is created using selected features index. Kernel will own its underlying data
|
virtual |
const MatrixLookup& theplu::yat::classifier::Kernel::data | ( | void | ) | const |
if | data is weighted |
const MatrixLookupWeighted& theplu::yat::classifier::Kernel::data_weighted | ( | void | ) | const |
if | data is unweighted |
double theplu::yat::classifier::Kernel::element | ( | const DataLookup1D & | vec, |
const size_t | i | ||
) | const |
Calculates the scalar product (using the KernelFunction) between vector vec and the th column in the data matrix.
double theplu::yat::classifier::Kernel::element | ( | const DataLookupWeighted1D & | vec, |
const size_t | i | ||
) | const |
Calculates the weighted scalar product (using the KernelFunction) between vector vec and the th column in the data matrix. Using a weight vector with all elements equal to unity yields same result as the non-weighted version above.
|
pure virtual |
An interface for making new classifier objects. This function allows for specification at run-time of which kernel to instatiate (see 'Prototype' in Design Patterns).
Implemented in theplu::yat::classifier::Kernel_MEV, and theplu::yat::classifier::Kernel_SEV.
|
pure virtual |
An interface for making new classifier objects. This function allows for specification at run-time of which kernel to instatiate (see 'Prototype' in Design Patterns).
Implemented in theplu::yat::classifier::Kernel_MEV, and theplu::yat::classifier::Kernel_SEV.
|
pure virtual |
Implemented in theplu::yat::classifier::Kernel_SEV, and theplu::yat::classifier::Kernel_MEV.
bool theplu::yat::classifier::Kernel::weighted | ( | void | ) | const |
|
protected |
pointer telling how many owners to underlying data (data_). NULL if this is not an owner.
|
protected |
pointer telling how many owners to underlying weights (data_w_). NULL if this is not an owner.