yat  0.16pre
Public Member Functions | Protected Attributes | List of all members
theplu::yat::classifier::Kernel_SEV Class Reference

Speed Efficient Kernel. More...

#include <yat/classifier/Kernel_SEV.h>

Inheritance diagram for theplu::yat::classifier::Kernel_SEV:
theplu::yat::classifier::Kernel

Public Member Functions

 Kernel_SEV (const MatrixLookup &, const KernelFunction &, const bool own=false)
 
 Kernel_SEV (const MatrixLookupWeighted &, const KernelFunction &, const bool own=false)
 
 Kernel_SEV (const Kernel_SEV &kernel, const std::vector< size_t > &index)
 
const Kernel_SEVmake_kernel (const MatrixLookup &, const bool own=false) const
 
const Kernel_SEVmake_kernel (const MatrixLookupWeighted &, const bool own=false) const
 
double operator() (const size_t row, const size_t column) const
 
const MatrixLookupdata (void) const
 
const MatrixLookupWeighteddata_weighted (void) const
 
double element (const DataLookup1D &vec, const size_t i) const
 
double element (const DataLookupWeighted1D &vec, const size_t i) const
 
size_t size (void) const
 number of samples
 
bool weighted (void) const
 

Protected Attributes

const MatrixLookupml_
 underlying data
 
const MatrixLookupWeightedmlw_
 same as data_ if weifghted otherwise a NULL pointer
 
const KernelFunctionkf_
 type of Kernel Function e.g. Gaussian (aka RBF)
 
unsigned int * ref_count_
 
unsigned int * ref_count_w_
 

Detailed Description

Speed Efficient Kernel.

Class taking care of the $ NxN $ kernel matrix, where $ N $ is number of samples. Type of Kernel is defined by a KernelFunction. This Speed Efficient Version (SEV) calculates the kernel matrix once by construction and the kernel is stored in memory. When $ N $ is large and the kernel matrix cannot be stored in memory, use Kernel_MEV instead.

Constructor & Destructor Documentation

theplu::yat::classifier::Kernel_SEV::Kernel_SEV ( const MatrixLookup ,
const KernelFunction ,
const bool  own = false 
)

Constructor taking the data matrix and KernelFunction as input.

Note
Can not handle NaNs. When dealing with missing values, use KernelWeighted_SEV instead.
theplu::yat::classifier::Kernel_SEV::Kernel_SEV ( const MatrixLookupWeighted ,
const KernelFunction ,
const bool  own = false 
)

Constructor taking the data matrix and KernelFunction as input.

Note
Can not handle NaNs. When dealing with missing values, use KernelWeighted_SEV instead.
theplu::yat::classifier::Kernel_SEV::Kernel_SEV ( const Kernel_SEV kernel,
const std::vector< size_t > &  index 
)

Constructs a Kernel based on selected features defined by index

Member Function Documentation

const MatrixLookup& theplu::yat::classifier::Kernel::data ( void  ) const
inherited
Returns
const reference to the underlying data.
Exceptions
ifdata is weighted
const MatrixLookupWeighted& theplu::yat::classifier::Kernel::data_weighted ( void  ) const
inherited
Returns
const reference to the underlying data.
Exceptions
ifdata is unweighted
double theplu::yat::classifier::Kernel::element ( const DataLookup1D vec,
const size_t  i 
) const
inherited

Calculates the scalar product (using the KernelFunction) between vector vec and the $ i $ th column in the data matrix.

double theplu::yat::classifier::Kernel::element ( const DataLookupWeighted1D vec,
const size_t  i 
) const
inherited

Calculates the weighted scalar product (using the KernelFunction) between vector vec and the $ i $ 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.

const Kernel_SEV* theplu::yat::classifier::Kernel_SEV::make_kernel ( const MatrixLookup ,
const bool  own = false 
) const
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).

Note
Returns a dynamically allocated Kernel, which has to be deleted by the caller to avoid memory leaks.

Implements theplu::yat::classifier::Kernel.

const Kernel_SEV* theplu::yat::classifier::Kernel_SEV::make_kernel ( const MatrixLookupWeighted ,
const bool  own = false 
) const
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).

Note
Returns a dynamically allocated Kernel, which has to be deleted by the caller to avoid memory leaks.

Implements theplu::yat::classifier::Kernel.

double theplu::yat::classifier::Kernel_SEV::operator() ( const size_t  row,
const size_t  column 
) const
virtual
Returns
element at position (row, column) in the Kernel matrix

Implements theplu::yat::classifier::Kernel.

bool theplu::yat::classifier::Kernel::weighted ( void  ) const
inherited
Returns
true if kernel is calculated using weights

Member Data Documentation

unsigned int* theplu::yat::classifier::Kernel::ref_count_
protectedinherited

pointer telling how many owners to underlying data (data_). NULL if this is not an owner.

unsigned int* theplu::yat::classifier::Kernel::ref_count_w_
protectedinherited

pointer telling how many owners to underlying weights (data_w_). NULL if this is not an owner.


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

Generated on Wed May 23 2018 02:32:35 for yat by  doxygen 1.8.11