SHOGUN  4.1.0
所有成员列表 | Public 成员函数 | 静态 Public 成员函数 | Public 属性 | Protected 成员函数 | 静态 Protected 成员函数 | Protected 属性
CCustomKernel类 参考

详细描述

The Custom 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.

The custom kernel supports subsets each on the rows and the columns. See documentation in CFeatures, CLabels how this works. The interface is similar.

在文件 CustomKernel.h 第 36 行定义.

类 CCustomKernel 继承关系图:
Inheritance graph
[图例]

Public 成员函数

 CCustomKernel ()
 
 CCustomKernel (CKernel *k)
 
 CCustomKernel (SGMatrix< float64_t > km)
 
 CCustomKernel (SGMatrix< float32_t > km)
 
virtual ~CCustomKernel ()
 
virtual bool dummy_init (int32_t rows, int32_t cols)
 
virtual bool init (CFeatures *l, CFeatures *r)
 
virtual void cleanup ()
 
void cleanup_custom ()
 
virtual EKernelType get_kernel_type ()
 
virtual EFeatureType get_feature_type ()
 
virtual EFeatureClass get_feature_class ()
 
virtual const char * get_name () const
 
bool set_triangle_kernel_matrix_from_triangle (SGVector< float64_t > tri_kernel_matrix)
 
template<class T >
bool set_triangle_kernel_matrix_from_triangle_generic (SGVector< T > tri_kernel_matrix)
 
bool set_triangle_kernel_matrix_from_full (SGMatrix< float64_t > full_kernel_matrix)
 
template<class T >
bool set_triangle_kernel_matrix_from_full_generic (SGMatrix< T > full_kernel_matrix)
 
bool set_full_kernel_matrix_from_full (SGMatrix< float32_t > full_kernel_matrix, bool check_symmetry=false)
 
bool set_full_kernel_matrix_from_full (SGMatrix< float64_t > full_kernel_matrix, bool check_symmetry=false)
 
virtual void add_row_subset (SGVector< index_t > subset)
 
virtual void add_row_subset_in_place (SGVector< index_t > subset)
 
virtual void remove_row_subset ()
 
virtual void remove_all_row_subsets ()
 
virtual void row_subset_changed_post ()
 
virtual void add_col_subset (SGVector< index_t > subset)
 
virtual void add_col_subset_in_place (SGVector< index_t > subset)
 
virtual void remove_col_subset ()
 
virtual void remove_all_col_subsets ()
 
virtual void col_subset_changed_post ()
 
virtual int32_t get_num_vec_lhs ()
 
virtual int32_t get_num_vec_rhs ()
 
virtual bool has_features ()
 
SGMatrix< float32_t > get_float32_kernel_matrix ()
 
float64_t kernel (int32_t idx_a, int32_t idx_b)
 
SGMatrix< float64_t > get_kernel_matrix ()
 
template<class T >
SGMatrix< T > get_kernel_matrix ()
 
SGVector< float64_t > get_kernel_diagonal (SGVector< float64_t > preallocated=SGVector< float64_t >())
 
virtual SGVector< float64_t > get_kernel_col (int32_t j)
 
virtual SGVector< float64_t > get_kernel_row (int32_t i)
 
virtual float64_t sum_symmetric_block (index_t block_begin, index_t block_size, bool no_diag=true)
 
virtual float64_t sum_block (index_t block_begin_row, index_t block_begin_col, index_t block_size_row, index_t block_size_col, bool no_diag=false)
 
virtual SGVector< float64_t > row_wise_sum_symmetric_block (index_t block_begin, index_t block_size, bool no_diag=true)
 
virtual SGMatrix< float64_t > row_wise_sum_squared_sum_symmetric_block (index_t block_begin, index_t block_size, bool no_diag=true)
 
virtual SGVector< float64_t > row_col_wise_sum_block (index_t block_begin_row, index_t block_begin_col, index_t block_size_row, index_t block_size_col, bool no_diag=false)
 
virtual bool set_normalizer (CKernelNormalizer *normalizer)
 
virtual CKernelNormalizer * get_normalizer ()
 
virtual bool init_normalizer ()
 
void load (CFile *loader)
 
void save (CFile *writer)
 
CFeatures * get_lhs ()
 
CFeatures * get_rhs ()
 
bool get_lhs_equals_rhs ()
 
virtual void remove_lhs_and_rhs ()
 
virtual void remove_lhs ()
 
virtual void remove_rhs ()
 takes all necessary steps if the rhs is removed from kernel 更多...
 
void set_cache_size (int32_t size)
 
int32_t get_cache_size ()
 
void list_kernel ()
 
bool has_property (EKernelProperty p)
 
virtual void clear_normal ()
 
virtual void add_to_normal (int32_t vector_idx, float64_t weight)
 
EOptimizationType get_optimization_type ()
 
virtual void set_optimization_type (EOptimizationType t)
 
bool get_is_initialized ()
 
virtual bool init_optimization (int32_t count, int32_t *IDX, float64_t *weights)
 
virtual bool delete_optimization ()
 
bool init_optimization_svm (CSVM *svm)
 
virtual float64_t compute_optimized (int32_t vector_idx)
 
virtual void compute_batch (int32_t num_vec, int32_t *vec_idx, float64_t *target, int32_t num_suppvec, int32_t *IDX, float64_t *alphas, float64_t factor=1.0)
 
float64_t get_combined_kernel_weight ()
 
void set_combined_kernel_weight (float64_t nw)
 
virtual int32_t get_num_subkernels ()
 
virtual void compute_by_subkernel (int32_t vector_idx, float64_t *subkernel_contrib)
 
virtual const float64_t * get_subkernel_weights (int32_t &num_weights)
 
virtual SGVector< float64_t > get_subkernel_weights ()
 
virtual void set_subkernel_weights (SGVector< float64_t > weights)
 
virtual SGMatrix< float64_t > get_parameter_gradient (const TParameter *param, index_t index=-1)
 
virtual SGVector< float64_t > get_parameter_gradient_diagonal (const TParameter *param, index_t index=-1)
 
virtual CSGObject * shallow_copy () const
 
virtual CSGObject * deep_copy () const
 
virtual bool is_generic (EPrimitiveType *generic) const
 
template<class T >
void set_generic ()
 
template<>
void set_generic ()
 
template<>
void set_generic ()
 
template<>
void set_generic ()
 
template<>
void set_generic ()
 
template<>
void set_generic ()
 
template<>
void set_generic ()
 
template<>
void set_generic ()
 
template<>
void set_generic ()
 
template<>
void set_generic ()
 
template<>
void set_generic ()
 
template<>
void set_generic ()
 
template<>
void set_generic ()
 
template<>
void set_generic ()
 
template<>
void set_generic ()
 
template<>
void set_generic ()
 
void unset_generic ()
 
virtual void print_serializable (const char *prefix="")
 
virtual bool save_serializable (CSerializableFile *file, const char *prefix="")
 
virtual bool load_serializable (CSerializableFile *file, const char *prefix="")
 
void set_global_io (SGIO *io)
 
SGIO * get_global_io ()
 
void set_global_parallel (Parallel *parallel)
 
Parallel * get_global_parallel ()
 
void set_global_version (Version *version)
 
Version * get_global_version ()
 
SGStringList< char > get_modelsel_names ()
 
void print_modsel_params ()
 
char * get_modsel_param_descr (const char *param_name)
 
index_t get_modsel_param_index (const char *param_name)
 
void build_gradient_parameter_dictionary (CMap< TParameter *, CSGObject * > *dict)
 
virtual void update_parameter_hash ()
 
virtual bool parameter_hash_changed ()
 
virtual bool equals (CSGObject *other, float64_t accuracy=0.0, bool tolerant=false)
 
virtual CSGObject * clone ()
 

静态 Public 成员函数

static CKernel * obtain_from_generic (CSGObject *kernel)
 

Public 属性

SGIO * io
 
Parallel * parallel
 
Version * version
 
Parameter * m_parameters
 
Parameter * m_model_selection_parameters
 
Parameter * m_gradient_parameters
 
uint32_t m_hash
 

Protected 成员函数

virtual float64_t compute (int32_t row, int32_t col)
 
void set_property (EKernelProperty p)
 
void unset_property (EKernelProperty p)
 
void set_is_initialized (bool p_init)
 
int32_t compute_row_start (int64_t offs, int32_t n, bool symmetric)
 
virtual void load_serializable_post () throw (ShogunException)
 
virtual void save_serializable_pre () throw (ShogunException)
 
virtual void save_serializable_post () throw (ShogunException)
 
virtual void register_params ()
 
virtual void load_serializable_pre () throw (ShogunException)
 

静态 Protected 成员函数

template<class T >
static void * get_kernel_matrix_helper (void *p)
 

Protected 属性

SGMatrix< float32_t > kmatrix
 
bool upper_diagonal
 
bool m_is_symmetric
 
CSubsetStack * m_row_subset_stack
 
CSubsetStack * m_col_subset_stack
 
bool m_free_km
 
int32_t cache_size
 cache_size in MB 更多...
 
KERNELCACHE_ELEM * kernel_matrix
 
CFeatures * lhs
 feature vectors to occur on left hand side 更多...
 
CFeatures * rhs
 feature vectors to occur on right hand side 更多...
 
bool lhs_equals_rhs
 lhs 更多...
 
int32_t num_lhs
 number of feature vectors on left hand side 更多...
 
int32_t num_rhs
 number of feature vectors on right hand side 更多...
 
float64_t combined_kernel_weight
 
bool optimization_initialized
 
EOptimizationType opt_type
 
uint64_t properties
 
CKernelNormalizer * normalizer
 

构造及析构函数说明

default constructor

在文件 CustomKernel.cpp 第 48 行定义.

constructor

compute custom kernel from given kernel matrix

参数
kkernel matrix

在文件 CustomKernel.cpp 第 55 行定义.

constructor

sets full kernel matrix from full kernel matrix (from double precision floats)

参数
kmkernel matrix

在文件 CustomKernel.cpp 第 76 行定义.

constructor

sets full kernel matrix from full kernel matrix (from double precision floats)

参数
kmkernel matrix

在文件 CustomKernel.cpp 第 85 行定义.

~CCustomKernel ( )
virtual

在文件 CustomKernel.cpp 第 94 行定义.

成员函数说明

void add_col_subset ( SGVector< index_t >  subset)
virtual

Adds a column subset of indices on top of the current subsets (possibly subset of subset). Every call causes a new active index vector to be stored. Added subsets can be removed one-by-one. If this is not needed, add_col_subset_in_place() should be used (does not store intermediate index vectors)

Calls col_subset_changed_post() afterwards

参数
subsetsubset of indices to add

在文件 CustomKernel.cpp 第 422 行定义.

void add_col_subset_in_place ( SGVector< index_t >  subset)
virtual

Sets/changes latest added column subset. This allows to add multiple subsets with in-place memory requirements. They cannot be removed one-by-one afterwards, only the latest active can. If this is needed, use add_col_subset(). If no subset is active, this just adds.

Calls col_subset_changed_post() afterwards

参数
subsetsubset of indices to replace the latest one with.

在文件 CustomKernel.cpp 第 428 行定义.

void add_row_subset ( SGVector< index_t >  subset)
virtual

Adds a row subset of indices on top of the current subsets (possibly subset of subset). Every call causes a new active index vector to be stored. Added subsets can be removed one-by-one. If this is not needed, add_row_subset_in_place() should be used (does not store intermediate index vectors)

Calls row_subset_changed_post() afterwards

参数
subsetsubset of indices to add

在文件 CustomKernel.cpp 第 390 行定义.

void add_row_subset_in_place ( SGVector< index_t >  subset)
virtual

Sets/changes latest added row subset. This allows to add multiple subsets with in-place memory requirements. They cannot be removed one-by-one afterwards, only the latest active can. If this is needed, use add_row_subset(). If no subset is active, this just adds.

Calls row_subset_changed_post() afterwards

参数
subsetsubset of indices to replace the latest one with.

在文件 CustomKernel.cpp 第 396 行定义.

void add_to_normal ( int32_t  vector_idx,
float64_t  weight 
)
virtualinherited

add vector*factor to 'virtual' normal vector

参数
vector_idxindex
weightweight

被 CCombinedKernel, CWeightedDegreeStringKernel, CWeightedDegreePositionStringKernel, CCommUlongStringKernel, CCommWordStringKernel, CLinearKernel, CLinearStringKernel , 以及 CWeightedCommWordStringKernel 重载.

在文件 Kernel.cpp 第 366 行定义.

void build_gradient_parameter_dictionary ( CMap< TParameter *, CSGObject * > *  dict)
inherited

Builds a dictionary of all parameters in SGObject as well of those of SGObjects that are parameters of this object. Dictionary maps parameters to the objects that own them.

参数
dictdictionary of parameters to be built.

在文件 SGObject.cpp 第 597 行定义.

void cleanup ( )
virtual

clean up kernel

重载 CKernel .

在文件 CustomKernel.cpp 第 384 行定义.

void cleanup_custom ( )

only cleanup stuff specific to Custom kernel

在文件 CustomKernel.cpp 第 372 行定义.

void clear_normal ( )
virtualinherited

for optimizable kernels, i.e. kernels where the weight vector can be computed explicitly (if it fits into memory)

被 CCombinedKernel, CWeightedDegreeStringKernel, CWeightedDegreePositionStringKernel, CCommUlongStringKernel, CCommWordStringKernel, CLinearKernel , 以及 CLinearStringKernel 重载.

在文件 Kernel.cpp 第 371 行定义.

CSGObject * clone ( )
virtualinherited

Creates a clone of the current object. This is done via recursively traversing all parameters, which corresponds to a deep copy. Calling equals on the cloned object always returns true although none of the memory of both objects overlaps.

返回
an identical copy of the given object, which is disjoint in memory. NULL if the clone fails. Note that the returned object is SG_REF'ed

在文件 SGObject.cpp 第 714 行定义.

void col_subset_changed_post ( )
virtual

method may be overwritten to update things that depend on subset

在文件 CustomKernel.cpp 第 446 行定义.

virtual float64_t compute ( int32_t  row,
int32_t  col 
)
protectedvirtual

compute kernel function

works with subset

参数
rowrow
colcol
返回
computed kernel function

实现了 CKernel.

在文件 CustomKernel.h 第 580 行定义.

void compute_batch ( int32_t  num_vec,
int32_t *  vec_idx,
float64_t *  target,
int32_t  num_suppvec,
int32_t *  IDX,
float64_t *  alphas,
float64_t  factor = 1.0 
)
virtualinherited

computes output for a batch of examples in an optimized fashion (favorable if kernel supports it, i.e. has KP_BATCHEVALUATION. to the outputvector target (of length num_vec elements) the output for the examples enumerated in vec_idx are added. therefore make sure that it is initialized with ZERO. the following num_suppvec, IDX, alphas arguments are the number of support vectors, their indices and weights

被 CCombinedKernel, CWeightedDegreeStringKernel , 以及 CWeightedDegreePositionStringKernel 重载.

在文件 Kernel.cpp 第 359 行定义.

void compute_by_subkernel ( int32_t  vector_idx,
float64_t *  subkernel_contrib 
)
virtualinherited

compute by subkernel

参数
vector_idxindex
subkernel_contribsubkernel contribution

被 CCombinedKernel, CWeightedDegreeStringKernel , 以及 CWeightedDegreePositionStringKernel 重载.

在文件 Kernel.cpp 第 381 行定义.

float64_t compute_optimized ( int32_t  vector_idx)
virtualinherited

compute optimized

参数
vector_idxindex to compute
返回
optimized value at given index

被 CCombinedKernel, CWeightedDegreeStringKernel, CWeightedDegreePositionStringKernel, CCommWordStringKernel, CCommUlongStringKernel, CLinearKernel, CLinearStringKernel , 以及 CWeightedCommWordStringKernel 重载.

在文件 Kernel.cpp 第 353 行定义.

int32_t compute_row_start ( int64_t  offs,
int32_t  n,
bool  symmetric 
)
protectedinherited

compute row start offset for parallel kernel matrix computation

参数
offsoffset
nnumber of columns
symmetricwhether matrix is symmetric

在文件 Kernel.h 第 801 行定义.

CSGObject * deep_copy ( ) const
virtualinherited

A deep copy. All the instance variables will also be copied.

在文件 SGObject.cpp 第 198 行定义.

bool delete_optimization ( )
virtualinherited

delete optimization

返回
if deleting was successful

被 CCombinedKernel, CWeightedDegreeStringKernel, CWeightedDegreePositionStringKernel, CCommWordStringKernel, CCommUlongStringKernel, CLinearKernel , 以及 CLinearStringKernel 重载.

在文件 Kernel.cpp 第 347 行定义.

bool 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

removes subset before

参数
rowsfeatures of left-hand side
colsfeatures of right-hand side
返回
if initializing was successful

在文件 CustomKernel.cpp 第 103 行定义.

bool equals ( CSGObject *  other,
float64_t  accuracy = 0.0,
bool  tolerant = false 
)
virtualinherited

Recursively compares the current SGObject to another one. Compares all registered numerical parameters, recursion upon complex (SGObject) parameters. Does not compare pointers!

May be overwritten but please do with care! Should not be necessary in most cases.

参数
otherobject to compare with
accuracyaccuracy to use for comparison (optional)
tolerantallows linient check on float equality (within accuracy)
返回
true if all parameters were equal, false if not

在文件 SGObject.cpp 第 618 行定义.

int32_t get_cache_size ( )
inherited

return the size of the kernel cache

返回
size of kernel cache

在文件 Kernel.h 第 593 行定义.

float64_t get_combined_kernel_weight ( )
inherited

get combined kernel weight

返回
combined kernel weight

在文件 Kernel.h 第 684 行定义.

virtual EFeatureClass get_feature_class ( )
virtual

return feature class the kernel can deal with

返回
feature class ANY

实现了 CKernel.

在文件 CustomKernel.h 第 120 行定义.

virtual EFeatureType get_feature_type ( )
virtual

return feature type the kernel can deal with

返回
feature type ANY

实现了 CKernel.

在文件 CustomKernel.h 第 114 行定义.

SGMatrix<float32_t> get_float32_kernel_matrix ( )

returns kernel matrix as is (not possible with subset)

返回
kernel matrix

在文件 CustomKernel.h 第 553 行定义.

SGIO * get_global_io ( )
inherited

get the io object

返回
io object

在文件 SGObject.cpp 第 235 行定义.

Parallel * get_global_parallel ( )
inherited

get the parallel object

返回
parallel object

在文件 SGObject.cpp 第 277 行定义.

Version * get_global_version ( )
inherited

get the version object

返回
version object

在文件 SGObject.cpp 第 290 行定义.

bool get_is_initialized ( )
inherited

check if optimization is initialized

返回
if optimization is initialized

在文件 Kernel.h 第 635 行定义.

virtual SGVector<float64_t> get_kernel_col ( int32_t  j)
virtualinherited

get column j

返回
the jth column of the kernel matrix

在文件 Kernel.h 第 259 行定义.

SGVector<float64_t> get_kernel_diagonal ( SGVector< float64_t >  preallocated = SGVector<float64_t>())
inherited
返回
Vector with diagonal elements of the kernel matrix. Note that left- and right-handside features must be set and of equal size
参数
preallocatedvector with space for results

在文件 Kernel.h 第 227 行定义.

template SGMatrix< float32_t > get_kernel_matrix< float32_t > ( )
inherited

get kernel matrix

返回
computed kernel matrix (needs to be cleaned up)

在文件 Kernel.h 第 216 行定义.

SGMatrix< T > get_kernel_matrix ( )
inherited

get kernel matrix (templated)

返回
the kernel matrix

在文件 Kernel.cpp 第 854 行定义.

template void * get_kernel_matrix_helper< float32_t > ( void *  p)
staticprotectedinherited

helper for computing the kernel matrix in a parallel way

参数
pthread parameters

在文件 Kernel.cpp 第 803 行定义.

virtual SGVector<float64_t> get_kernel_row ( int32_t  i)
virtualinherited

get row i

返回
the ith row of the kernel matrix

在文件 Kernel.h 第 276 行定义.

virtual EKernelType get_kernel_type ( )
virtual

return what type of kernel we are

返回
kernel type CUSTOM

实现了 CKernel.

在文件 CustomKernel.h 第 108 行定义.

CFeatures* get_lhs ( )
inherited

get left-hand side of features used in kernel

返回
features of left-hand side

在文件 Kernel.h 第 501 行定义.

bool get_lhs_equals_rhs ( )
inherited

test whether features on lhs and rhs are the same

返回
true if features are the same

在文件 Kernel.h 第 540 行定义.

SGStringList< char > get_modelsel_names ( )
inherited
返回
vector of names of all parameters which are registered for model selection

在文件 SGObject.cpp 第 498 行定义.

char * get_modsel_param_descr ( const char *  param_name)
inherited

Returns description of a given parameter string, if it exists. SG_ERROR otherwise

参数
param_namename of the parameter
返回
description of the parameter

在文件 SGObject.cpp 第 522 行定义.

index_t get_modsel_param_index ( const char *  param_name)
inherited

Returns index of model selection parameter with provided index

参数
param_namename of model selection parameter
返回
index of model selection parameter with provided name, -1 if there is no such

在文件 SGObject.cpp 第 535 行定义.

virtual const char* get_name ( ) const
virtual

return the kernel's name

返回
name Custom

实现了 CSGObject.

在文件 CustomKernel.h 第 126 行定义.

CKernelNormalizer * get_normalizer ( )
virtualinherited

obtain the current kernel normalizer

返回
the kernel normalizer

在文件 Kernel.cpp 第 147 行定义.

int32_t get_num_subkernels ( )
virtualinherited

get number of subkernels

返回
number of subkernels

被 CWeightedDegreeStringKernel, CWeightedDegreePositionStringKernel, CCombinedKernel , 以及 CProductKernel 重载.

在文件 Kernel.cpp 第 376 行定义.

virtual int32_t get_num_vec_lhs ( )
virtual

get number of vectors of lhs features

works with subset

返回
number of vectors of left-hand side

重载 CKernel .

在文件 CustomKernel.h 第 520 行定义.

virtual int32_t get_num_vec_rhs ( )
virtual

get number of vectors of rhs features

works with subset

返回
number of vectors of right-hand side

重载 CKernel .

在文件 CustomKernel.h 第 532 行定义.

EOptimizationType get_optimization_type ( )
inherited

get optimization type

返回
optimization type

在文件 Kernel.h 第 623 行定义.

virtual SGMatrix<float64_t> get_parameter_gradient ( const TParameter *  param,
index_t  index = -1 
)
virtualinherited

return derivative with respect to specified parameter

参数
paramthe parameter
indexthe index of the element if parameter is a vector
返回
gradient with respect to parameter

被 CCombinedKernel, CProductKernel, CGaussianKernel , 以及 CPeriodicKernel 重载.

在文件 Kernel.h 第 732 行定义.

virtual SGVector<float64_t> get_parameter_gradient_diagonal ( const TParameter *  param,
index_t  index = -1 
)
virtualinherited

return diagonal part of derivative with respect to specified parameter

参数
paramthe parameter
indexthe index of the element if parameter is a vector
返回
diagonal part of gradient with respect to parameter

在文件 Kernel.h 第 746 行定义.

CFeatures* get_rhs ( )
inherited

get right-hand side of features used in kernel

返回
features of right-hand side

在文件 Kernel.h 第 507 行定义.

const float64_t * get_subkernel_weights ( int32_t &  num_weights)
virtualinherited

get subkernel weights

参数
num_weightsnumber of weights will be stored here
返回
subkernel weights

被 CCombinedKernel, CWeightedDegreeStringKernel , 以及 CWeightedDegreePositionStringKernel 重载.

在文件 Kernel.cpp 第 387 行定义.

SGVector< float64_t > get_subkernel_weights ( )
virtualinherited

get subkernel weights (swig compatible)

返回
subkernel weights

被 CCombinedKernel 重载.

在文件 Kernel.cpp 第 393 行定义.

virtual bool has_features ( )
virtual

test whether features have been assigned to lhs and rhs

works with subset

返回
true if features are assigned

重载 CKernel .

在文件 CustomKernel.h 第 544 行定义.

bool has_property ( EKernelProperty  p)
inherited

check if kernel has given property

参数
pkernel property
返回
if kernel has given property

在文件 Kernel.h 第 605 行定义.

bool init ( CFeatures *  l,
CFeatures *  r 
)
virtual

initialize kernel

removes subset before

参数
lfeatures of left-hand side
rfeatures of right-hand side
返回
if initializing was successful

重载 CKernel .

在文件 CustomKernel.cpp 第 108 行定义.

bool init_normalizer ( )
virtualinherited

initialize the current kernel normalizer

返回
if init was successful

在文件 Kernel.cpp 第 153 行定义.

bool init_optimization ( int32_t  count,
int32_t *  IDX,
float64_t *  weights 
)
virtualinherited

initialize optimization

参数
countcount
IDXindex
weightsweights
返回
if initializing was successful

被 CCombinedKernel, CWeightedDegreeStringKernel, CWeightedDegreePositionStringKernel, CCommWordStringKernel, CCommUlongStringKernel, CLinearKernel , 以及 CLinearStringKernel 重载.

在文件 Kernel.cpp 第 340 行定义.

bool init_optimization_svm ( CSVM *  svm)
inherited

initialize optimization

参数
svmsvm model
返回
if initializing was successful

在文件 Kernel.cpp 第 423 行定义.

bool is_generic ( EPrimitiveType *  generic) const
virtualinherited

If the SGSerializable is a class template then TRUE will be returned and GENERIC is set to the type of the generic.

参数
genericset to the type of the generic if returning TRUE
返回
TRUE if a class template.

在文件 SGObject.cpp 第 296 行定义.

float64_t kernel ( int32_t  idx_a,
int32_t  idx_b 
)
inherited

get kernel function for lhs feature vector a and rhs feature vector b

参数
idx_aindex of feature vector a
idx_bindex of feature vector b
返回
computed kernel function

在文件 Kernel.h 第 203 行定义.

void list_kernel ( )
inherited

list kernel

在文件 Kernel.cpp 第 221 行定义.

void load ( CFile *  loader)
inherited

load the kernel matrix

参数
loaderFile object via which to load data

在文件 Kernel.cpp 第 165 行定义.

bool load_serializable ( CSerializableFile *  file,
const char *  prefix = "" 
)
virtualinherited

Load this object from file. If it will fail (returning FALSE) then this object will contain inconsistent data and should not be used!

参数
filewhere to load from
prefixprefix for members
返回
TRUE if done, otherwise FALSE

在文件 SGObject.cpp 第 369 行定义.

void load_serializable_post ( )
throw (ShogunException
)
protectedvirtualinherited

Can (optionally) be overridden to post-initialize some member variables which are not PARAMETER::ADD'ed. Make sure that at first the overridden method BASE_CLASS::LOAD_SERIALIZABLE_POST is called.

异常
ShogunExceptionWill be thrown if an error occurres.

重载 CSGObject .

被 CWeightedDegreePositionStringKernel, CGaussianKernel, CInverseMultiQuadricKernel, CCircularKernel , 以及 CExponentialKernel 重载.

在文件 Kernel.cpp 第 441 行定义.

void load_serializable_pre ( )
throw (ShogunException
)
protectedvirtualinherited

Can (optionally) be overridden to pre-initialize some member variables which are not PARAMETER::ADD'ed. Make sure that at first the overridden method BASE_CLASS::LOAD_SERIALIZABLE_PRE is called.

异常
ShogunExceptionwill be thrown if an error occurs.

被 CDynamicArray< T >, CDynamicArray< float64_t >, CDynamicArray< float32_t >, CDynamicArray< int32_t >, CDynamicArray< char >, CDynamicArray< bool > , 以及 CDynamicObjectArray 重载.

在文件 SGObject.cpp 第 421 行定义.

CKernel * obtain_from_generic ( CSGObject *  kernel)
staticinherited

Obtains a kernel from a generic SGObject with error checking. Note that if passing NULL, result will be NULL

参数
kernelObject to cast to CKernel, is not SG_REFed
返回
object casted to CKernel, NULL if not possible

在文件 Kernel.cpp 第 409 行定义.

bool parameter_hash_changed ( )
virtualinherited
返回
whether parameter combination has changed since last update

在文件 SGObject.cpp 第 262 行定义.

void print_modsel_params ( )
inherited

prints all parameter registered for model selection and their type

在文件 SGObject.cpp 第 474 行定义.

void print_serializable ( const char *  prefix = "")
virtualinherited

prints registered parameters out

参数
prefixprefix for members

在文件 SGObject.cpp 第 308 行定义.

void register_params ( )
protectedvirtualinherited

Separate the function of parameter registration This can be the first stage of a general framework for cross-validation or other parameter-based operations

被 CSpectrumMismatchRBFKernel, CSNPStringKernel, CANOVAKernel, CSubsequenceStringKernel, CGaussianMatchStringKernel, CGaussianShortRealKernel, CTensorProductPairKernel, CDistanceKernel , 以及 CHistogramIntersectionKernel 重载.

在文件 Kernel.cpp 第 464 行定义.

void remove_all_col_subsets ( )
virtual

removes all col subsets Calls subset_changed_post() afterwards

在文件 CustomKernel.cpp 第 440 行定义.

void remove_all_row_subsets ( )
virtual

removes all row subsets Calls subset_changed_post() afterwards

在文件 CustomKernel.cpp 第 408 行定义.

void remove_col_subset ( )
virtual

removes that last added col subset from subset stack, if existing Calls subset_changed_post() afterwards

在文件 CustomKernel.cpp 第 434 行定义.

void remove_lhs ( )
virtualinherited
void remove_lhs_and_rhs ( )
virtualinherited

remove lhs and rhs from kernel

被 CCombinedKernel , 以及 CProductKernel 重载.

在文件 Kernel.cpp 第 179 行定义.

void remove_rhs ( )
virtualinherited

takes all necessary steps if the rhs is removed from kernel

remove rhs from kernel

被 CCombinedKernel, CCommUlongStringKernel , 以及 CProductKernel 重载.

在文件 Kernel.cpp 第 208 行定义.

void remove_row_subset ( )
virtual

removes that last added row subset from subset stack, if existing Calls subset_changed_post() afterwards

在文件 CustomKernel.cpp 第 402 行定义.

SGVector< float64_t > row_col_wise_sum_block ( index_t  block_begin_row,
index_t  block_begin_col,
index_t  block_size_row,
index_t  block_size_col,
bool  no_diag = false 
)
virtualinherited

Computes row-wise/col-wise sum of kernel values. This method is useful while computing statistical estimation of mean/variance over kernel values but the kernel matrix is too huge to be fit inside memory.

参数
block_begin_rowthe row index at which the block starts
block_begin_colthe col index at which the block starts
block_size_rowthe number of rows in the block
block_size_colthe number of cols in the block

For Example, block_begin_row 0, block_begin_col 4 and block_size_row 5, block_size_col 6 represents the block that starts at index (0,4) in the kernel matrix and goes upto (0+5-1,4+6-1) i.e. (4,9) both inclusive

参数
no_diagif true (default is false), the diagonal elements are excluded from the row/col-wise sum, provided that block_size_row and block_size_col are same (i.e. the block is square). Otherwise, these are always added
返回
a vector whose first block_size_row entries contain row-wise sum of kernel values computed as

\[ v[i]=\sum_{j}k(i+\text{block-begin-row}, j+\text{block-begin-col}) \]

and rest block_size_col entries col-wise sum of kernel values computed as

\[ v[\text{block-size-row}+j]=\sum_{i}k(i+\text{block-begin-row}, j+\text{block-begin-col}) \]

where \(i\in[0,\text{block-size-row}-1]\) and \(j\in[0,\text{block-size-col}-1]\)

在文件 Kernel.cpp 第 749 行定义.

void row_subset_changed_post ( )
virtual

method may be overwritten to update things that depend on subset

在文件 CustomKernel.cpp 第 414 行定义.

SGMatrix< float64_t > row_wise_sum_squared_sum_symmetric_block ( index_t  block_begin,
index_t  block_size,
bool  no_diag = true 
)
virtualinherited

Computes row-wise/col-wise sum and squared sum of kernel values from a symmetric part of the kernel matrix that always is supposed to contain the main upper diagonal. This method is useful while computing statistical estimation of mean/variance over kernel values but the kernel matrix is too huge to be fit inside memory.

参数
block_beginthe row and col index at which the block starts
block_sizethe number of rows and cols in the block

For Example, block_begin 4 and block_size 5 represents the block that starts at index (4,4) in the kernel matrix and goes upto (4+5-1,4+5-1) i.e. (8,8) both inclusive

参数
no_diagif true (default), the diagonal elements are excluded from the row/col-wise sum
返回
a matrix whose first column contains the row-wise sum of kernel values computed as

\[ v_0[i]=\sum_{j}k(i+\text{block-begin}, j+\text{block-begin}) \]

and second column contains the row-wise sum of squared kernel values

\[ v_1[i]=\sum_{j}^k^2(i+\text{block-begin}, j+\text{block-begin}) \]

where \(i,j\in[0,\text{block-size}-1]\)

在文件 Kernel.cpp 第 690 行定义.

SGVector< float64_t > row_wise_sum_symmetric_block ( index_t  block_begin,
index_t  block_size,
bool  no_diag = true 
)
virtualinherited

Computes row-wise/col-wise sum from a symmetric part of the kernel matrix that always is supposed to contain the main upper diagonal. This method is useful while computing statistical estimation of mean/variance over kernel values but the kernel matrix is too huge to be fit inside memory.

参数
block_beginthe row and col index at which the block starts
block_sizethe number of rows and cols in the block

For Example, block_begin 4 and block_size 5 represents the block that starts at index (4,4) in the kernel matrix and goes upto (4+5-1,4+5-1) i.e. (8,8) both inclusive

参数
no_diagif true (default), the diagonal elements are excluded from the row/col-wise sum
返回
vector containing row-wise sum computed as

\[ v[i]=\sum_{j}k(i+\text{block-begin}, j+\text{block-begin}) \]

where \(i,j\in[0,\text{block-size}-1]\)

在文件 Kernel.cpp 第 636 行定义.

void save ( CFile *  writer)
inherited

save kernel matrix

参数
writerFile object via which to save data

在文件 Kernel.cpp 第 171 行定义.

bool save_serializable ( CSerializableFile *  file,
const char *  prefix = "" 
)
virtualinherited

Save this object to file.

参数
filewhere to save the object; will be closed during returning if PREFIX is an empty string.
prefixprefix for members
返回
TRUE if done, otherwise FALSE

在文件 SGObject.cpp 第 314 行定义.

void save_serializable_post ( )
throw (ShogunException
)
protectedvirtualinherited

Can (optionally) be overridden to post-initialize some member variables which are not PARAMETER::ADD'ed. Make sure that at first the overridden method BASE_CLASS::SAVE_SERIALIZABLE_POST is called.

异常
ShogunExceptionWill be thrown if an error occurres.

重载 CSGObject .

在文件 Kernel.cpp 第 456 行定义.

void save_serializable_pre ( )
throw (ShogunException
)
protectedvirtualinherited

Can (optionally) be overridden to pre-initialize some member variables which are not PARAMETER::ADD'ed. Make sure that at first the overridden method BASE_CLASS::SAVE_SERIALIZABLE_PRE is called.

异常
ShogunExceptionWill be thrown if an error occurres.

重载 CSGObject .

在文件 Kernel.cpp 第 448 行定义.

void set_cache_size ( int32_t  size)
inherited

set the size of the kernel cache

参数
sizeof kernel cache

在文件 Kernel.h 第 583 行定义.

void set_combined_kernel_weight ( float64_t  nw)
inherited

set combined kernel weight

参数
nwnew combined kernel weight

在文件 Kernel.h 第 690 行定义.

bool set_full_kernel_matrix_from_full ( SGMatrix< float32_t >  full_kernel_matrix,
bool  check_symmetry = false 
)

set full kernel matrix from full kernel matrix

for float32

works NOT with subset

参数
full_kernel_matrixthe original kernel matrix to be set from
check_symmetrywhether checking for symmetry of the kernel matrix is required
返回
if setting was successful

在文件 CustomKernel.h 第 263 行定义.

bool set_full_kernel_matrix_from_full ( SGMatrix< float64_t >  full_kernel_matrix,
bool  check_symmetry = false 
)

set full kernel matrix from full kernel matrix

for float64

works NOT with subset

参数
full_kernel_matrixthe original kernel matrix to be set from
check_symmetrywhether checking for symmetry of the kernel matrix is required
返回
if setting was successful

在文件 CustomKernel.h 第 294 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 41 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 46 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 51 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 56 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 61 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 66 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 71 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 76 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 81 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 86 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 91 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 96 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 101 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 106 行定义.

void set_generic ( )
inherited

在文件 SGObject.cpp 第 111 行定义.

void set_generic ( )
inherited

set generic type to T

void set_global_io ( SGIO *  io)
inherited

set the io object

参数
ioio object to use

在文件 SGObject.cpp 第 228 行定义.

void set_global_parallel ( Parallel *  parallel)
inherited

set the parallel object

参数
parallelparallel object to use

在文件 SGObject.cpp 第 241 行定义.

void set_global_version ( Version *  version)
inherited

set the version object

参数
versionversion object to use

在文件 SGObject.cpp 第 283 行定义.

void set_is_initialized ( bool  p_init)
protectedinherited

set is initialized

参数
p_initif optimization shall be set to initialized

在文件 Kernel.h 第 781 行定义.

bool set_normalizer ( CKernelNormalizer *  normalizer)
virtualinherited

set the current kernel normalizer

返回
if successful

被 CWeightedDegreeStringKernel 重载.

在文件 Kernel.cpp 第 135 行定义.

virtual void set_optimization_type ( EOptimizationType  t)
virtualinherited

set optimization type

参数
toptimization type to set

被 CCombinedKernel 重载.

在文件 Kernel.h 第 629 行定义.

void set_property ( EKernelProperty  p)
protectedinherited

set property

参数
pkernel property to set

在文件 Kernel.h 第 763 行定义.

void set_subkernel_weights ( SGVector< float64_t >  weights)
virtualinherited

set subkernel weights

参数
weightsnew subkernel weights

被 CCombinedKernel, CWeightedDegreeStringKernel , 以及 CWeightedDegreePositionStringKernel 重载.

在文件 Kernel.cpp 第 400 行定义.

bool set_triangle_kernel_matrix_from_full ( SGMatrix< float64_t >  full_kernel_matrix)

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

for float64's

works NOT with subset

返回
if setting was successful

在文件 CustomKernel.h 第 204 行定义.

bool set_triangle_kernel_matrix_from_full_generic ( SGMatrix< T >  full_kernel_matrix)

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

works NOT with subset

返回
if setting was successful

在文件 CustomKernel.h 第 218 行定义.

bool set_triangle_kernel_matrix_from_triangle ( SGVector< float64_t >  tri_kernel_matrix)

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

small variant for floats64's, triangle needs to have less than 2**32 elements

works NOT with subset

参数
tri_kernel_matrixtri kernel matrix
返回
if setting was successful

在文件 CustomKernel.h 第 139 行定义.

bool set_triangle_kernel_matrix_from_triangle_generic ( SGVector< T >  tri_kernel_matrix)

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

big variant, allowing the triangle to have more than 2**31-1 elements

works NOT with subset

参数
tri_kernel_matrixtri kernel matrix
返回
if setting was successful

在文件 CustomKernel.h 第 162 行定义.

CSGObject * shallow_copy ( ) const
virtualinherited

A shallow copy. All the SGObject instance variables will be simply assigned and SG_REF-ed.

被 CGaussianKernel 重载.

在文件 SGObject.cpp 第 192 行定义.

float64_t sum_block ( index_t  block_begin_row,
index_t  block_begin_col,
index_t  block_size_row,
index_t  block_size_col,
bool  no_diag = false 
)
virtualinherited

Computes sum of kernel values from a specified block. This method is useful while computing statistical estimation of mean/variance over kernel values but the kernel matrix is too huge to be fit inside memory.

参数
block_begin_rowthe row index at which the block starts
block_begin_colthe col index at which the block starts
block_size_rowthe number of rows in the block
block_size_colthe number of cols in the block

For example, block_begin_row 0, block_begin_col 4 and block_size_row 5, block_size_col 6 represents the block that starts at index (0,4) in the kernel matrix and goes upto (0+5-1,4+6-1) i.e. (4,9) both inclusive

参数
no_diagif true (default is false), the diagonal elements are excluded from the sum, provided that block_size_row and block_size_col are same (i.e. the block is square). Otherwise, these are always added
返回
sum of kernel values within the block computed as

\[ \sum_{i}\sum_{j}k(i+\text{block-begin-row}, j+\text{block-begin-col}) \]

where \(i\in[0,\text{block-size-row}-1]\) and \(j\in[0,\text{block-size-col}-1]\)

在文件 Kernel.cpp 第 590 行定义.

float64_t sum_symmetric_block ( index_t  block_begin,
index_t  block_size,
bool  no_diag = true 
)
virtualinherited

Computes sum from a symmetric part of the kernel matrix that always is supposed to contain the main upper diagonal. This method is useful while computing statistical estimation of mean/variance over kernel values but the kernel matrix is too huge to be fit inside memory.

参数
block_beginthe row and col index at which the block starts
block_sizethe number of rows and cols in the block

For example, block_begin 4 and block_size 5 represents the block that starts at index (4,4) in the kernel matrix and goes upto (4+5-1,4+5-1) i.e. (8,8) both inclusive

参数
no_diagif true (default), the diagonal elements are excluded from the sum
返回
sum of kernel values within the block computed as

\[ \sum_{i}\sum_{j}k(i+\text{block-begin}, j+\text{block-begin}) \]

where \(i,j\in[0,\text{block-size}-1]\)

在文件 Kernel.cpp 第 537 行定义.

void unset_generic ( )
inherited

unset generic type

this has to be called in classes specializing a template class

在文件 SGObject.cpp 第 303 行定义.

void unset_property ( EKernelProperty  p)
protectedinherited

unset property

参数
pkernel property to unset

在文件 Kernel.h 第 772 行定义.

void update_parameter_hash ( )
virtualinherited

Updates the hash of current parameter combination

在文件 SGObject.cpp 第 248 行定义.

类成员变量说明

int32_t cache_size
protectedinherited

cache_size in MB

在文件 Kernel.h 第 866 行定义.

float64_t combined_kernel_weight
protectedinherited

combined kernel weight

在文件 Kernel.h 第 888 行定义.

SGIO* io
inherited

io

在文件 SGObject.h 第 369 行定义.

KERNELCACHE_ELEM* kernel_matrix
protectedinherited

this COULD store the whole kernel matrix usually not applicable / necessary to compute the whole matrix

在文件 Kernel.h 第 872 行定义.

SGMatrix<float32_t> kmatrix
protected

kernel matrix

在文件 CustomKernel.h 第 608 行定义.

CFeatures* lhs
protectedinherited

feature vectors to occur on left hand side

在文件 Kernel.h 第 875 行定义.

bool lhs_equals_rhs
protectedinherited

lhs

在文件 Kernel.h 第 880 行定义.

CSubsetStack* m_col_subset_stack
protected

column subset stack

在文件 CustomKernel.h 第 620 行定义.

bool m_free_km
protected

indicates whether kernel matrix is to be freed in destructor

在文件 CustomKernel.h 第 623 行定义.

Parameter* m_gradient_parameters
inherited

parameters wrt which we can compute gradients

在文件 SGObject.h 第 384 行定义.

uint32_t m_hash
inherited

Hash of parameter values

在文件 SGObject.h 第 387 行定义.

bool m_is_symmetric
protected

whether the kernel matrix is symmetric

在文件 CustomKernel.h 第 614 行定义.

Parameter* m_model_selection_parameters
inherited

model selection parameters

在文件 SGObject.h 第 381 行定义.

Parameter* m_parameters
inherited

parameters

在文件 SGObject.h 第 378 行定义.

CSubsetStack* m_row_subset_stack
protected

row subset stack

在文件 CustomKernel.h 第 617 行定义.

CKernelNormalizer* normalizer
protectedinherited

normalize the kernel(i,j) function based on this normalization function

在文件 Kernel.h 第 902 行定义.

int32_t num_lhs
protectedinherited

number of feature vectors on left hand side

在文件 Kernel.h 第 883 行定义.

int32_t num_rhs
protectedinherited

number of feature vectors on right hand side

在文件 Kernel.h 第 885 行定义.

EOptimizationType opt_type
protectedinherited

optimization type (currently FASTBUTMEMHUNGRY and SLOWBUTMEMEFFICIENT)

在文件 Kernel.h 第 895 行定义.

bool optimization_initialized
protectedinherited

if optimization is initialized

在文件 Kernel.h 第 891 行定义.

Parallel* parallel
inherited

parallel

在文件 SGObject.h 第 372 行定义.

uint64_t properties
protectedinherited

kernel properties

在文件 Kernel.h 第 898 行定义.

CFeatures* rhs
protectedinherited

feature vectors to occur on right hand side

在文件 Kernel.h 第 877 行定义.

bool upper_diagonal
protected

upper diagonal

在文件 CustomKernel.h 第 611 行定义.

Version* version
inherited

version

在文件 SGObject.h 第 375 行定义.


该类的文档由以下文件生成:

SHOGUN 机器学习工具包 - 项目文档