The Weighted Degree Position String kernel (Weighted Degree kernel with shifts).
The WD-shift kernel of order d compares two sequences
and
of length L by summing all contributions of k-mer matches of lengths
, weighted by coefficients
allowing for a positional tolerance of up to shift s.
It is formally defined as
where
are the weighting coefficients of the j-mers,
is a weighting over the position in the sequence,
is the weight assigned to shifts (in either direction) of extent s, and S(l) determines the shift range at position l.
在文件WeightedDegreePositionStringKernel.h第48行定义。

公有成员 | |
| CWeightedDegreePositionStringKernel (int32_t size, int32_t degree, int32_t max_mismatch=0, int32_t mkl_stepsize=1) | |
| CWeightedDegreePositionStringKernel (int32_t size, float64_t *weights, int32_t degree, int32_t max_mismatch, int32_t *shift, int32_t shift_len, int32_t mkl_stepsize=1) | |
| CWeightedDegreePositionStringKernel (CStringFeatures< char > *l, CStringFeatures< char > *r, int32_t degree) | |
| virtual | ~CWeightedDegreePositionStringKernel () |
| virtual bool | init (CFeatures *l, CFeatures *r) |
| virtual void | cleanup () |
| virtual EKernelType | get_kernel_type () |
| virtual const char * | get_name () const |
| virtual bool | init_optimization (int32_t p_count, int32_t *IDX, float64_t *alphas) |
| virtual bool | init_optimization (int32_t count, int32_t *IDX, float64_t *alphas, int32_t tree_num, int32_t upto_tree=-1) |
| virtual bool | delete_optimization () |
| virtual float64_t | compute_optimized (int32_t 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) |
| virtual void | clear_normal () |
| virtual void | add_to_normal (int32_t idx, float64_t weight) |
| virtual int32_t | get_num_subkernels () |
| void | compute_by_subkernel (int32_t idx, float64_t *subkernel_contrib) |
| const float64_t * | get_subkernel_weights (int32_t &num_weights) |
| void | set_subkernel_weights (float64_t *weights2, int32_t num_weights2) |
| float64_t * | compute_abs_weights (int32_t &len) |
| bool | is_tree_initialized () |
| int32_t | get_max_mismatch () |
| int32_t | get_degree () |
| float64_t * | get_degree_weights (int32_t &d, int32_t &len) |
| float64_t * | get_weights (int32_t &num_weights) |
| float64_t * | get_position_weights (int32_t &len) |
| bool | set_shifts (int32_t *shifts, int32_t len) |
| virtual bool | set_weights (float64_t *weights, int32_t d, int32_t len=0) |
| virtual bool | set_wd_weights () |
| virtual bool | set_position_weights (float64_t *pws, int32_t len) |
| bool | set_position_weights_lhs (float64_t *pws, int32_t len, int32_t num) |
| bool | set_position_weights_rhs (float64_t *pws, int32_t len, int32_t num) |
| bool | init_block_weights () |
| bool | init_block_weights_from_wd () |
| bool | init_block_weights_from_wd_external () |
| bool | init_block_weights_const () |
| bool | init_block_weights_linear () |
| bool | init_block_weights_sqpoly () |
| bool | init_block_weights_cubicpoly () |
| bool | init_block_weights_exp () |
| bool | init_block_weights_log () |
| bool | init_block_weights_external () |
| bool | delete_position_weights () |
| bool | delete_position_weights_lhs () |
| bool | delete_position_weights_rhs () |
| virtual float64_t | compute_by_tree (int32_t idx) |
| virtual void | compute_by_tree (int32_t idx, float64_t *LevelContrib) |
| float64_t * | compute_scoring (int32_t max_degree, int32_t &num_feat, int32_t &num_sym, float64_t *target, int32_t num_suppvec, int32_t *IDX, float64_t *weights) |
| char * | compute_consensus (int32_t &num_feat, int32_t num_suppvec, int32_t *IDX, float64_t *alphas) |
| float64_t * | extract_w (int32_t max_degree, int32_t &num_feat, int32_t &num_sym, float64_t *w_result, int32_t num_suppvec, int32_t *IDX, float64_t *alphas) |
| float64_t * | compute_POIM (int32_t max_degree, int32_t &num_feat, int32_t &num_sym, float64_t *poim_result, int32_t num_suppvec, int32_t *IDX, float64_t *alphas, float64_t *distrib) |
| void | prepare_POIM2 (float64_t *distrib, int32_t num_sym, int32_t num_feat) |
| void | compute_POIM2 (int32_t max_degree, CSVM *svm) |
| void | get_POIM2 (float64_t **poim, int32_t *result_len) |
| void | cleanup_POIM2 () |
| cleanup POIM2 | |
静态公有成员 | |
| static void * | compute_batch_helper (void *p) |
保护成员 | |
| void | create_empty_tries () |
| virtual void | add_example_to_tree (int32_t idx, float64_t weight) |
| void | add_example_to_single_tree (int32_t idx, float64_t weight, int32_t tree_num) |
| virtual float64_t | compute (int32_t idx_a, int32_t idx_b) |
| float64_t | compute_with_mismatch (char *avec, int32_t alen, char *bvec, int32_t blen) |
| float64_t | compute_without_mismatch (char *avec, int32_t alen, char *bvec, int32_t blen) |
| float64_t | compute_without_mismatch_matrix (char *avec, int32_t alen, char *bvec, int32_t blen) |
| float64_t | compute_without_mismatch_position_weights (char *avec, float64_t *posweights_lhs, int32_t alen, char *bvec, float64_t *posweights_rhs, int32_t blen) |
| virtual void | remove_lhs () |
保护属性 | |
| float64_t * | weights |
| float64_t * | position_weights |
| float64_t * | position_weights_lhs |
| float64_t * | position_weights_rhs |
| bool * | position_mask |
| float64_t * | weights_buffer |
| int32_t | mkl_stepsize |
| int32_t | degree |
| int32_t | length |
| int32_t | max_mismatch |
| int32_t | seq_length |
| int32_t * | shift |
| int32_t | shift_len |
| int32_t | max_shift |
| bool | block_computation |
| int32_t | num_block_weights_external |
| float64_t * | block_weights_external |
| float64_t * | block_weights |
| EWDKernType | type |
| int32_t | which_degree |
| CTrie< DNATrie > | tries |
| CTrie< POIMTrie > | poim_tries |
| bool | tree_initialized |
| bool | use_poim_tries |
| float64_t * | m_poim_distrib |
| float64_t * | m_poim |
| int32_t | m_poim_num_sym |
| int32_t | m_poim_num_feat |
| int32_t | m_poim_result_len |
| CAlphabet * | alphabet |
| CWeightedDegreePositionStringKernel | ( | int32_t | size, | |
| int32_t | degree, | |||
| int32_t | max_mismatch = 0, |
|||
| int32_t | mkl_stepsize = 1 | |||
| ) |
constructor
| size | cache size | |
| degree | degree | |
| max_mismatch | maximum mismatch | |
| mkl_stepsize | MKL stepsize |
| CWeightedDegreePositionStringKernel | ( | int32_t | size, | |
| float64_t * | weights, | |||
| int32_t | degree, | |||
| int32_t | max_mismatch, | |||
| int32_t * | shift, | |||
| int32_t | shift_len, | |||
| int32_t | mkl_stepsize = 1 | |||
| ) |
constructor
| size | cache size | |
| weights | weights | |
| degree | degree | |
| max_mismatch | maximum mismatch | |
| shift | position shifts | |
| shift_len | number of shifts | |
| mkl_stepsize | MKL stepsize |
| CWeightedDegreePositionStringKernel | ( | CStringFeatures< char > * | l, | |
| CStringFeatures< char > * | r, | |||
| int32_t | degree | |||
| ) |
constructor
| l | features of left-hand side | |
| r | features of right-hand side | |
| degree | degree |
| ~CWeightedDegreePositionStringKernel | ( | ) | [virtual] |
| void add_example_to_single_tree | ( | int32_t | idx, | |
| float64_t | weight, | |||
| int32_t | tree_num | |||
| ) | [protected] |
add example to single tree
| idx | index | |
| weight | weight | |
| tree_num | which tree |
| void add_example_to_tree | ( | int32_t | idx, | |
| float64_t | weight | |||
| ) | [protected, virtual] |
| virtual void add_to_normal | ( | int32_t | idx, | |
| float64_t | weight | |||
| ) | [virtual] |
| void cleanup | ( | ) | [virtual] |
| void cleanup_POIM2 | ( | ) |
cleanup POIM2
| virtual void clear_normal | ( | ) | [virtual] |
| float64_t compute | ( | int32_t | idx_a, | |
| int32_t | idx_b | |||
| ) | [protected, virtual] |
compute kernel function for features a and b idx_{a,b} denote the index of the feature vectors in the corresponding feature object
| idx_a | index a | |
| idx_b | index b |
实现了CKernel。
| float64_t * compute_abs_weights | ( | int32_t & | len | ) |
compute abs weights
| len | len |
| 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] |
compute batch
| num_vec | number of vectors | |
| vec_idx | vector index | |
| target | target | |
| num_suppvec | number of support vectors | |
| IDX | IDX | |
| alphas | alphas | |
| factor | factor |
重载CKernel。
| void * compute_batch_helper | ( | void * | p | ) | [static] |
| void compute_by_subkernel | ( | int32_t | idx, | |
| float64_t * | subkernel_contrib | |||
| ) | [virtual] |
| float64_t compute_by_tree | ( | int32_t | idx | ) | [virtual] |
| void compute_by_tree | ( | int32_t | idx, | |
| float64_t * | LevelContrib | |||
| ) | [virtual] |
compute by tree
| idx | index | |
| LevelContrib | level contribution |
| char * compute_consensus | ( | int32_t & | num_feat, | |
| int32_t | num_suppvec, | |||
| int32_t * | IDX, | |||
| float64_t * | alphas | |||
| ) |
compute consensus string
| num_feat | number of features | |
| num_suppvec | number of support vectors | |
| IDX | IDX | |
| alphas | alphas |
| virtual float64_t compute_optimized | ( | int32_t | idx | ) | [virtual] |
| float64_t * compute_POIM | ( | int32_t | max_degree, | |
| int32_t & | num_feat, | |||
| int32_t & | num_sym, | |||
| float64_t * | poim_result, | |||
| int32_t | num_suppvec, | |||
| int32_t * | IDX, | |||
| float64_t * | alphas, | |||
| float64_t * | distrib | |||
| ) |
compute POIM
| max_degree | maximum degree | |
| num_feat | number of features | |
| num_sym | number of symbols | |
| poim_result | poim | |
| num_suppvec | number of support vectors | |
| IDX | IDX | |
| alphas | alphas | |
| distrib | distribution |
| void compute_POIM2 | ( | int32_t | max_degree, | |
| CSVM * | svm | |||
| ) |
compute POIM2
| max_degree | maximum degree | |
| svm | SVM |
| float64_t * compute_scoring | ( | int32_t | max_degree, | |
| int32_t & | num_feat, | |||
| int32_t & | num_sym, | |||
| float64_t * | target, | |||
| int32_t | num_suppvec, | |||
| int32_t * | IDX, | |||
| float64_t * | weights | |||
| ) |
compute positional scoring function, which assigns a weight per position, per symbol in the sequence
| max_degree | maximum degree | |
| num_feat | number of features | |
| num_sym | number of symbols | |
| target | target | |
| num_suppvec | number of support vectors | |
| IDX | IDX | |
| weights | weights |
| float64_t compute_with_mismatch | ( | char * | avec, | |
| int32_t | alen, | |||
| char * | bvec, | |||
| int32_t | blen | |||
| ) | [protected] |
compute with mismatch
| avec | vector a | |
| alen | length of vector a | |
| bvec | vector b | |
| blen | length of vector b |
| float64_t compute_without_mismatch | ( | char * | avec, | |
| int32_t | alen, | |||
| char * | bvec, | |||
| int32_t | blen | |||
| ) | [protected] |
compute without mismatch
| avec | vector a | |
| alen | length of vector a | |
| bvec | vector b | |
| blen | length of vector b |
| float64_t compute_without_mismatch_matrix | ( | char * | avec, | |
| int32_t | alen, | |||
| char * | bvec, | |||
| int32_t | blen | |||
| ) | [protected] |
compute without mismatch matrix
| avec | vector a | |
| alen | length of vector a | |
| bvec | vector b | |
| blen | length of vector b |
| float64_t compute_without_mismatch_position_weights | ( | char * | avec, | |
| float64_t * | posweights_lhs, | |||
| int32_t | alen, | |||
| char * | bvec, | |||
| float64_t * | posweights_rhs, | |||
| int32_t | blen | |||
| ) | [protected] |
compute without mismatch position weights
| avec | vector a | |
| posweights_lhs | position weights left-hand side | |
| alen | length of vector a | |
| bvec | vector b | |
| posweights_rhs | position weights right-hand side | |
| blen | length of vector b |
| void create_empty_tries | ( | ) | [protected] |
create emtpy tries
| bool delete_optimization | ( | ) | [virtual] |
| bool delete_position_weights | ( | ) |
delete position weights
| bool delete_position_weights_lhs | ( | ) |
delete position weights left-hand side
| bool delete_position_weights_rhs | ( | ) |
delete position weights right-hand side
| float64_t * extract_w | ( | int32_t | max_degree, | |
| int32_t & | num_feat, | |||
| int32_t & | num_sym, | |||
| float64_t * | w_result, | |||
| int32_t | num_suppvec, | |||
| int32_t * | IDX, | |||
| float64_t * | alphas | |||
| ) |
extract w
| max_degree | maximum degree | |
| num_feat | number of features | |
| num_sym | number of symbols | |
| w_result | w | |
| num_suppvec | number of support vectors | |
| IDX | IDX | |
| alphas | alphas |
| int32_t get_degree | ( | ) |
| float64_t* get_degree_weights | ( | int32_t & | d, | |
| int32_t & | len | |||
| ) |
get degree weights
| d | degree weights will be stored here | |
| len | number of degree weights will be stored here |
| virtual EKernelType get_kernel_type | ( | ) | [virtual] |
| int32_t get_max_mismatch | ( | ) |
| virtual const char* get_name | ( | ) | const [virtual] |
| virtual int32_t get_num_subkernels | ( | ) | [virtual] |
| void get_POIM2 | ( | float64_t ** | poim, | |
| int32_t * | result_len | |||
| ) |
get POIM2
| poim | POIMs (returned) | |
| result_len | (returned) |
| float64_t* get_position_weights | ( | int32_t & | len | ) |
get position weights
| len | number of position weights will be stored here |
| const float64_t* get_subkernel_weights | ( | int32_t & | num_weights | ) | [virtual] |
get subkernel weights
| num_weights | number of weights will be stored here |
重载CKernel。
| float64_t* get_weights | ( | int32_t & | num_weights | ) |
get weights
| num_weights | number of weights will be stored here |
initialize kernel
| l | features of left-hand side | |
| r | features of right-hand side |
| bool init_block_weights | ( | ) |
initialize block weights
| bool init_block_weights_const | ( | ) |
initialize block weights constant
| bool init_block_weights_cubicpoly | ( | ) |
initialize block weights cubic polynomial
| bool init_block_weights_exp | ( | ) |
initialize block weights exponential
| bool init_block_weights_external | ( | ) |
initialize block weights external
| bool init_block_weights_from_wd | ( | ) |
initialize block weights from weighted degree
| bool init_block_weights_from_wd_external | ( | ) |
initialize block weights from external weighted degree
| bool init_block_weights_linear | ( | ) |
initialize block weights linear
| bool init_block_weights_log | ( | ) |
initialize block weights logarithmic
| bool init_block_weights_sqpoly | ( | ) |
initialize block weights squared polynomial
| virtual bool init_optimization | ( | int32_t | p_count, | |
| int32_t * | IDX, | |||
| float64_t * | alphas | |||
| ) | [virtual] |
initialize optimization
| p_count | count | |
| IDX | index | |
| alphas | alphas |
重载CKernel。
| bool init_optimization | ( | int32_t | count, | |
| int32_t * | IDX, | |||
| float64_t * | alphas, | |||
| int32_t | tree_num, | |||
| int32_t | upto_tree = -1 | |||
| ) | [virtual] |
initialize optimization do initialization for tree_num up to upto_tree, use tree_num=-1 to construct all trees
| count | count | |
| IDX | IDX | |
| alphas | alphas | |
| tree_num | which tree | |
| upto_tree | up to this tree |
| bool is_tree_initialized | ( | ) |
check if tree is initialized
| void prepare_POIM2 | ( | float64_t * | distrib, | |
| int32_t | num_sym, | |||
| int32_t | num_feat | |||
| ) |
prepare POIM2
| num_feat | number of features | |
| num_sym | number of symbols | |
| distrib | distribution |
| void remove_lhs | ( | ) | [protected, virtual] |
| bool set_position_weights | ( | float64_t * | pws, | |
| int32_t | len | |||
| ) | [virtual] |
set position weights
| pws | new position weights | |
| len | number of position weights |
| bool set_position_weights_lhs | ( | float64_t * | pws, | |
| int32_t | len, | |||
| int32_t | num | |||
| ) |
set position weights for left-hand side
| pws | new position weights | |
| len | len | |
| num | num |
| bool set_position_weights_rhs | ( | float64_t * | pws, | |
| int32_t | len, | |||
| int32_t | num | |||
| ) |
set position weights for right-hand side
| pws | new position weights | |
| len | len | |
| num | num |
| bool set_shifts | ( | int32_t * | shifts, | |
| int32_t | len | |||
| ) |
set shifts
| shifts | new shifts | |
| len | number of shifts |
| void set_subkernel_weights | ( | float64_t * | weights2, | |
| int32_t | num_weights2 | |||
| ) | [virtual] |
| bool set_wd_weights | ( | ) | [virtual] |
| bool set_weights | ( | float64_t * | weights, | |
| int32_t | d, | |||
| int32_t | len = 0 | |||
| ) | [virtual] |
set weights
| weights | new weights | |
| d | degree | |
| len | number of weights |
alphabet of features
bool block_computation [protected] |
if block computation is used
float64_t* block_weights [protected] |
(internal) block weights
float64_t* block_weights_external [protected] |
external block weights
int32_t degree [protected] |
degree
int32_t length [protected] |
length
temporary memory for the interface to the poim functions
float64_t* m_poim_distrib [protected] |
temporary memory for the interface to the poim functions
int32_t m_poim_num_feat [protected] |
length of string (==num_feat)
int32_t m_poim_num_sym [protected] |
number of symbols
int32_t m_poim_result_len [protected] |
total size of poim array
int32_t max_mismatch [protected] |
maximum mismatch
int32_t max_shift [protected] |
maximum shift
int32_t mkl_stepsize [protected] |
MKL stepsize
int32_t num_block_weights_external [protected] |
number of external block weights
CTrie<POIMTrie> poim_tries [protected] |
POIM tries
bool* position_mask [protected] |
position mask
float64_t* position_weights [protected] |
position weights
float64_t* position_weights_lhs [protected] |
position weights left-hand side
float64_t* position_weights_rhs [protected] |
position weights right-hand side
int32_t seq_length [protected] |
length of sequence
int32_t* shift [protected] |
shifts
int32_t shift_len [protected] |
length of shifts
bool tree_initialized [protected] |
if tree is initialized
tries
EWDKernType type [protected] |
WeightedDegree kernel type
bool use_poim_tries [protected] |
makes add_example_to_tree (ONLY!) use POIMTrie
weights
float64_t* weights_buffer [protected] |
weights buffer
int32_t which_degree [protected] |
which degree