CCustomKernel Class Reference

Inheritance diagram for CCustomKernel:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 CCustomKernel ()
 CCustomKernel (CKernel *k)
virtual ~CCustomKernel ()
virtual float32_tget_kernel_matrix_shortreal (int32_t &m, int32_t &n, float32_t *target=NULL)
virtual bool dummy_init (int32_t rows, int32_t cols)
virtual bool init (CFeatures *l, CFeatures *r)
virtual void cleanup ()
virtual bool load_init (FILE *src)
virtual bool save_init (FILE *dest)
virtual EKernelType get_kernel_type ()
virtual EFeatureType get_feature_type ()
virtual EFeatureClass get_feature_class ()
virtual const char * get_name ()
bool set_triangle_kernel_matrix_from_triangle (const float64_t *km, int32_t len)
bool set_triangle_kernel_matrix_from_full (const float64_t *km, int32_t rows, int32_t cols)
bool set_full_kernel_matrix_from_full (const float64_t *km, int32_t rows, int32_t cols)

Protected Member Functions

virtual float64_t compute (int32_t row, int32_t col)

Protected Attributes

float32_tkmatrix
int32_t num_rows
int32_t num_cols
bool upper_diagonal


Detailed Description

Custom Kernel

This kernel allows for custom user provided kernel matrices. For squared training matrices it allows to store only the upper triangle of the kernel to save memory: Full symmetric kernel matrices can be stored as is or can be internally converted into (or directly given in) upper triangle representation. Also note that values are stored as 32bit floats.

Definition at line 28 of file CustomKernel.h.


Constructor & Destructor Documentation

CCustomKernel::CCustomKernel (  ) 

default constructor

Definition at line 17 of file CustomKernel.cpp.

CCustomKernel::CCustomKernel ( CKernel k  ) 

constructor

compute custom kernel from given kernel matrix

Parameters:
k kernel matrix

Definition at line 22 of file CustomKernel.cpp.

CCustomKernel::~CCustomKernel (  )  [virtual]

Definition at line 65 of file CustomKernel.cpp.


Member Function Documentation

void CCustomKernel::cleanup (  )  [virtual]

clean up kernel

Reimplemented from CKernel.

Definition at line 108 of file CustomKernel.cpp.

virtual float64_t CCustomKernel::compute ( int32_t  row,
int32_t  col 
) [protected, virtual]

compute kernel function

Parameters:
row row
col col
Returns:
computed kernel function

Implements CKernel.

Definition at line 153 of file CustomKernel.h.

bool CCustomKernel::dummy_init ( int32_t  rows,
int32_t  cols 
) [virtual]

initialize kernel with dummy features

Kernels always need feature objects assigned. As the custom kernel does not really require this it creates some magic dummy features that only know about the number of vectors

Parameters:
rows features of left-hand side
cols features of right-hand side
Returns:
if initializing was successful

Definition at line 83 of file CustomKernel.cpp.

virtual EFeatureClass CCustomKernel::get_feature_class (  )  [virtual]

return feature class the kernel can deal with

Returns:
feature class ANY

Implements CKernel.

Definition at line 106 of file CustomKernel.h.

virtual EFeatureType CCustomKernel::get_feature_type (  )  [virtual]

return feature type the kernel can deal with

Returns:
feature type ANY

Implements CKernel.

Definition at line 100 of file CustomKernel.h.

float32_t * CCustomKernel::get_kernel_matrix_shortreal ( int32_t &  m,
int32_t &  n,
float32_t target = NULL 
) [virtual]

get kernel matrix shortreal

Parameters:
m dimension m of matrix
n dimension n of matrix
target target for kernel matrix
Returns:
the kernel matrix

Reimplemented from CKernel.

Definition at line 70 of file CustomKernel.cpp.

virtual EKernelType CCustomKernel::get_kernel_type (  )  [virtual]

return what type of kernel we are

Returns:
kernel type CUSTOM

Implements CKernel.

Definition at line 94 of file CustomKernel.h.

virtual const char* CCustomKernel::get_name (  )  [virtual]

return the kernel's name

Returns:
name Custom

Implements CKernel.

Definition at line 112 of file CustomKernel.h.

bool CCustomKernel::init ( CFeatures l,
CFeatures r 
) [virtual]

initialize kernel

Parameters:
l features of left-hand side
r features of right-hand side
Returns:
if initializing was successful

Reimplemented from CKernel.

Definition at line 88 of file CustomKernel.cpp.

bool CCustomKernel::load_init ( FILE *  src  )  [virtual]

load kernel init_data

Parameters:
src file to load from
Returns:
if loading was successful

Implements CKernel.

Definition at line 114 of file CustomKernel.cpp.

bool CCustomKernel::save_init ( FILE *  dest  )  [virtual]

save kernel init_data

Parameters:
dest file to save to
Returns:
if saving was successful

Implements CKernel.

Definition at line 119 of file CustomKernel.cpp.

bool CCustomKernel::set_full_kernel_matrix_from_full ( const float64_t km,
int32_t  rows,
int32_t  cols 
)

set full kernel matrix from full kernel matrix

Parameters:
km kernel matrix
rows number of rows in matrix
cols number of cols in matrix
Returns:
if setting was successful

Definition at line 177 of file CustomKernel.cpp.

bool CCustomKernel::set_triangle_kernel_matrix_from_full ( const float64_t km,
int32_t  rows,
int32_t  cols 
)

set kernel matrix (only elements from upper triangle) from squared matrix

Parameters:
km kernel matrix
rows number of rows in matrix
cols number of cols in matrix
Returns:
if setting was successful

Definition at line 154 of file CustomKernel.cpp.

bool CCustomKernel::set_triangle_kernel_matrix_from_triangle ( const float64_t km,
int32_t  len 
)

set kernel matrix (only elements from upper triangle) from elements of upper triangle (concat'd), including the main diagonal

Parameters:
km kernel matrix
len denotes the size of the array and should match len=cols*(cols+1)/2
Returns:
if setting was successful

Definition at line 124 of file CustomKernel.cpp.


Member Data Documentation

kernel matrix

Definition at line 176 of file CustomKernel.h.

int32_t CCustomKernel::num_cols [protected]

number of columns

Definition at line 180 of file CustomKernel.h.

int32_t CCustomKernel::num_rows [protected]

number of rows

Definition at line 178 of file CustomKernel.h.

upper diagonal

Definition at line 182 of file CustomKernel.h.


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

SHOGUN Machine Learning Toolbox - Documentation