The Combined kernel is used to combine a number of kernels into a single CombinedKernel object by linear combination.
It keeps pointers to the added sub-kernels
and for each sub-kernel - a kernel specific weight
.
It is especially useful to combine kernels working on different domains and to combine kernels looking at independent features and requires CCombinedFeatures to be used.
It is defined as:
Definition at line 46 of file CombinedKernel.h.

| CCombinedKernel | ( | int32_t | size = 10, |
|
| bool | append_subkernel_weights = false | |||
| ) |
constructor
| size | cache size | |
| append_subkernel_weights | if subkernel weights shall be appended |
Definition at line 45 of file CombinedKernel.cpp.
| ~CCombinedKernel | ( | ) | [virtual] |
Definition at line 56 of file CombinedKernel.cpp.
| void add_to_normal | ( | int32_t | idx, | |
| float64_t | weight | |||
| ) | [virtual] |
add to normal vector
| idx | where to add | |
| weight | what to add |
Reimplemented from CKernel.
Definition at line 579 of file CombinedKernel.cpp.
| void adjust_num_lhs_rhs_initialized | ( | CKernel * | k | ) | [protected] |
adjust the variables num_lhs, num_rhs and initialized based on the kernel to be appended/inserted
| k | kernel |
Definition at line 399 of file CombinedKernel.h.
| bool append_kernel | ( | CKernel * | k | ) |
append kernel
| k | kernel |
Definition at line 190 of file CombinedKernel.h.
| void cleanup | ( | ) | [virtual] |
| void clear_normal | ( | ) | [virtual] |
| float64_t compute | ( | int32_t | x, | |
| int32_t | y | |||
| ) | [protected, virtual] |
compute kernel function
| x | x | |
| y | y |
Implements CKernel.
Definition at line 243 of file CombinedKernel.cpp.
| 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 | |||
| ) | [virtual] |
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
Reimplemented from CKernel.
Definition at line 336 of file CombinedKernel.cpp.
| void compute_by_subkernel | ( | int32_t | idx, | |
| float64_t * | subkernel_contrib | |||
| ) | [virtual] |
compute by subkernel
| idx | index | |
| subkernel_contrib | subkernel contribution |
Reimplemented from CKernel.
Definition at line 607 of file CombinedKernel.cpp.
| void * compute_kernel_helper | ( | void * | p | ) | [static] |
helper for compute kernel
| p | thread parameter |
Definition at line 383 of file CombinedKernel.cpp.
| float64_t compute_optimized | ( | int32_t | idx | ) | [virtual] |
compute optimized
| idx | index to compute |
Reimplemented from CKernel.
Definition at line 534 of file CombinedKernel.cpp.
| void * compute_optimized_kernel_helper | ( | void * | p | ) | [static] |
helper for compute optimized kernel
| p | thread parameter |
Definition at line 370 of file CombinedKernel.cpp.
| bool delete_kernel | ( | ) |
| bool delete_optimization | ( | ) | [virtual] |
delete optimization
Reimplemented from CKernel.
Definition at line 310 of file CombinedKernel.cpp.
| void emulate_compute_batch | ( | CKernel * | k, | |
| int32_t | num_vec, | |||
| int32_t * | vec_idx, | |||
| float64_t * | target, | |||
| int32_t | num_suppvec, | |||
| int32_t * | IDX, | |||
| float64_t * | weights | |||
| ) |
emulates batch computation, via linadd optimization w^t x or even down to sum_i alpha_i K(x_i,x)
| k | kernel | |
| num_vec | number of vectors | |
| vec_idx | vector index | |
| target | target | |
| num_suppvec | number of support vectors | |
| IDX | IDX | |
| weights | weights |
Definition at line 405 of file CombinedKernel.cpp.
| bool get_append_subkernel_weights | ( | ) |
check if subkernel weights are appended
Definition at line 224 of file CombinedKernel.h.
| virtual EFeatureClass get_feature_class | ( | ) | [virtual] |
return feature class the kernel can deal with
Implements CKernel.
Definition at line 92 of file CombinedKernel.h.
| virtual EFeatureType get_feature_type | ( | ) | [virtual] |
return feature type the kernel can deal with
Implements CKernel.
Definition at line 83 of file CombinedKernel.h.
| CKernel* get_first_kernel | ( | ) |
| CKernel* get_first_kernel | ( | CListElement *& | current | ) |
get first kernel
| current |
Definition at line 120 of file CombinedKernel.h.
| CKernel* get_kernel | ( | int32_t | idx | ) |
get kernel
| idx | index of kernel |
Definition at line 130 of file CombinedKernel.h.
| virtual EKernelType get_kernel_type | ( | ) | [virtual] |
return what type of kernel we are
Implements CKernel.
Definition at line 74 of file CombinedKernel.h.
| CKernel* get_last_kernel | ( | ) |
| virtual const char* get_name | ( | ) | const [virtual] |
return the kernel's name
Implements CSGObject.
Definition at line 101 of file CombinedKernel.h.
| CKernel* get_next_kernel | ( | ) |
| CKernel* get_next_kernel | ( | CListElement *& | current | ) |
get next kernel multi-thread safe
| current |
Definition at line 164 of file CombinedKernel.h.
| int32_t get_num_subkernels | ( | ) | [virtual] |
get number of subkernels
Reimplemented from CKernel.
Definition at line 233 of file CombinedKernel.h.
get subkernel weights (swig compatible)
Definition at line 688 of file CombinedKernel.cpp.
| const float64_t * get_subkernel_weights | ( | int32_t & | num_weights | ) | [virtual] |
get subkernel weights
| num_weights | where number of weights is stored |
Reimplemented from CKernel.
Definition at line 646 of file CombinedKernel.cpp.
| virtual bool has_features | ( | ) | [virtual] |
test whether features have been assigned to lhs and rhs
Reimplemented from CKernel.
Definition at line 257 of file CombinedKernel.h.
initialize kernel
| lhs | features of left-hand side | |
| rhs | features of right-hand side |
Reimplemented from CKernel.
Definition at line 67 of file CombinedKernel.cpp.
| bool init_optimization | ( | int32_t | count, | |
| int32_t * | IDX, | |||
| float64_t * | weights | |||
| ) | [virtual] |
initialize optimization
| count | count | |
| IDX | index | |
| weights | weights |
Reimplemented from CKernel.
Definition at line 259 of file CombinedKernel.cpp.
| bool insert_kernel | ( | CKernel * | k | ) |
insert kernel
| k | kernel |
Definition at line 174 of file CombinedKernel.h.
| CCombinedKernel* KernelToCombinedKernel | ( | shogun::CKernel * | n | ) |
casts kernel to combined kernel
| n | kernel to cast |
Definition at line 380 of file CombinedKernel.h.
| void list_kernels | ( | ) |
list kernels
Definition at line 225 of file CombinedKernel.cpp.
| bool precompute_subkernels | ( | ) |
precompute all sub-kernels
Definition at line 746 of file CombinedKernel.cpp.
| void remove_lhs | ( | ) | [virtual] |
remove lhs from kernel
Reimplemented from CKernel.
Definition at line 147 of file CombinedKernel.cpp.
| void remove_lhs_and_rhs | ( | ) | [virtual] |
remove lhs and rhs from kernel
Reimplemented from CKernel.
Definition at line 184 of file CombinedKernel.cpp.
| void remove_rhs | ( | ) | [virtual] |
remove rhs from kernel
Reimplemented from CKernel.
Definition at line 167 of file CombinedKernel.cpp.
| void set_optimization_type | ( | EOptimizationType | t | ) | [virtual] |
set optimization type
| t | optimization type |
Reimplemented from CKernel.
Definition at line 731 of file CombinedKernel.cpp.
set subkernel weights
| weights | new subkernel weights |
Reimplemented from CKernel.
Definition at line 696 of file CombinedKernel.cpp.
bool append_subkernel_weights [protected] |
if subkernel weights are appended
Definition at line 453 of file CombinedKernel.h.
bool initialized [protected] |
whether kernel is ready to be used
Definition at line 455 of file CombinedKernel.h.
CList* kernel_list [protected] |
list of kernels
Definition at line 443 of file CombinedKernel.h.
float64_t* subkernel_weights_buffer [protected] |
subkernel weights buffers
Definition at line 451 of file CombinedKernel.h.
int32_t sv_count [protected] |
support vector count
Definition at line 445 of file CombinedKernel.h.
int32_t* sv_idx [protected] |
support vector index
Definition at line 447 of file CombinedKernel.h.
support vector weights
Definition at line 449 of file CombinedKernel.h.